/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $input = $request->all();
     $validator = $this->validator($input);
     if ($validator->fails()) {
         return redirect('admin/project/create')->withErrors($validator);
     } else {
         $project = new Projects();
         $project->projectCode = $request->input('projectCode');
         $project->projectName = $request->input('projectName');
         $project->projectVersion = $request->input('projectVersion');
         $project->projectStartDate = $request->input('projectStartDate');
         $project->projectEndDate = $request->input('projectEndDate');
         $fileName = '';
         $file = $request->file('projectCharter');
         if ($file) {
             global $fileName;
             $rand = rand(1, 10000);
             $fileName = $rand . '.' . $request->input('projectCode') . '_Charter.' . $file->getClientOriginalExtension();
             $file->move(base_path() . '/public/projectCharter', $fileName);
             $project->projectCharter = 'projectCharter/' . $fileName;
         }
         $project->projectStatus = "0";
         $project->save();
         return redirect('admin/project/' . $project->id)->withErrors('Create Projects Succeed');
     }
 }
 public function postAdd(Request $request)
 {
     if (!ACL::hasPermission('projects', 'add')) {
         return redirect(route('projects'))->withErrors(['You don\'t have permission for add new project.']);
     }
     $this->validate($request, ['title' => 'required|max:50', 'projectsTypeId' => 'required', 'projectDate' => 'required|date_format:m/d/Y', 'client' => 'required|max:50', 'agency' => 'max:50', 'url' => 'max:255', 'description' => 'required', 'tags' => 'required', 'largeImage' => 'required', 'mediumImage' => 'required', 'smallImage' => 'required']);
     $lastProject = Projects::orderBy('sortorder', 'DESC')->addSelect('sortorder')->first();
     $sortorder = isset($lastProject) ? $lastProject->sortorder + 1 : 1;
     $project = new Projects();
     $project->title = $request->title;
     $project->projectsTypeId = $request->projectsTypeId;
     $project->projectDate = Carbon::createFromFormat('m/d/Y', $request->projectDate)->format('Y-m-d H:i:s');
     $project->client = $request->client;
     $project->agency = $request->agency;
     $project->url = $request->url;
     $project->description = $request->description;
     $project->tags = $request->tags;
     $project->sortorder = $sortorder;
     //NAME IMAGE
     $extension = $request->largeImage->getClientOriginalExtension();
     $nameImage = Carbon::now()->format('YmdHis') . "." . $extension;
     $project->image = $nameImage;
     $project->save();
     //CREATED FOLDER WITH projectsId NUMBER
     File::makeDirectory($this->folder . $project->projectsId, 0777);
     //LARGE IMAGE
     $nameLargeImage = "large_" . $nameImage;
     $largeImage = Image::make($request->file('largeImage'));
     if ($request->largeCropAreaW > 0 or $request->largeCropAreaH > 0 or $request->largePositionX or $request->largePositionY) {
         $largeImage->crop($request->largeCropAreaW, $request->largeCropAreaH, $request->largePositionX, $request->largePositionY);
     }
     $largeImage->resize($this->largeWidth, $this->largeHeight)->save($this->folder . $project->projectsId . "/" . $nameLargeImage);
     //MEDIUM IMAGE
     $nameMediumImage = "medium_" . $nameImage;
     $mediumImage = Image::make($request->file('mediumImage'));
     if ($request->mediumCropAreaW > 0 or $request->mediumCropAreaH > 0 or $request->mediumPositionX or $request->mediumPositionY) {
         $mediumImage->crop($request->mediumCropAreaW, $request->mediumCropAreaH, $request->mediumPositionX, $request->mediumPositionY);
     }
     $mediumImage->resize($this->mediumWidth, $this->mediumHeight)->save($this->folder . $project->projectsId . "/" . $nameMediumImage);
     //SMALL IMAGE
     $nameSmallImage = "small_" . $nameImage;
     $smallImage = Image::make($request->file('smallImage'));
     if ($request->smallCropAreaW > 0 or $request->smallCropAreaH > 0 or $request->smallPositionX or $request->smallPositionY) {
         $smallImage->crop($request->smallCropAreaW, $request->smallCropAreaH, $request->smallPositionX, $request->smallPositionY);
     }
     $smallImage->resize($this->smallWidth, $this->smallHeight)->save($this->folder . $project->projectsId . "/" . $nameSmallImage);
     $success = "Project added successfully.";
     return redirect(route('projects'))->with(compact('success'));
 }
 public function posteditportfolio(Request $request)
 {
     if (empty($request->input('updateid'))) {
         $model = new Projects();
         if ($request->hasFile('image')) {
             $files = $request->file('image');
             $medias = [];
             $errors = [];
             foreach ($files as $file) {
                 $destenition = public_path() . "/img/";
                 $extension = $file->getClientOriginalExtension();
                 $fileName = rand(11111, 99999) . '.' . $extension;
                 $file->move($destenition, $fileName);
                 array_push($medias, $fileName);
                 $images = implode(",", $medias);
             }
         }
         $model->name = $request->input('name');
         $model->description = $request->input('description');
         $model->additional_description = $request->input('additional_description');
         $model->url = $request->input('url');
         if (isset($images)) {
             $model->imgpath = $images;
         }
         if ($model->save()) {
             return redirect('/admin');
         }
     } else {
         $model = Projects::find($request->input('updateid'));
         if ($request->hasFile('image')) {
             $files = $request->file('image');
             $medias = [];
             foreach ($files as $file) {
                 $destenition = public_path() . "/img/";
                 $extension = $file->getClientOriginalExtension();
                 $fileName = rand(11111, 99999) . '.' . $extension;
                 $file->move($destenition, $fileName);
                 array_push($medias, $fileName);
                 $images = implode(",", $medias);
             }
         }
         $model->name = $request->input('name');
         $model->description = $request->input('description');
         $model->additional_description = $request->input('additional_description');
         $model->url = $request->input('url');
         if (isset($images)) {
             $model->imgpath = $images;
         }
         if ($model->save()) {
             return redirect('/admin');
         }
     }
 }