Esempio n. 1
0
        public ActionResult Update(GigFormViewModel updatedViewModel, HttpPostedFileBase upload)
        {
            var userId = User.Identity.GetUserId();

            //GET THE EXISTING GIG FOR UPDATE
            var gigDB = unitOfWork.GigsRepository.GetGigForForm(updatedViewModel.GigID);

            //CHECK IF THE GIG EXIST
            if (gigDB == null)
            {
                return(HttpNotFound());
            }

            if (gigDB.UserID != userId)
            {
                return(new HttpUnauthorizedResult());
            }

            gigDB.Modify(updatedViewModel);

            // IF THERE IS MEW FILE UPLOADED THEN WE WILL DELETE THE GIG FILE FOR NACKGROUND FROM HIS FILES
            if (upload != null && upload.ContentLength > 0)
            {
                if (gigDB.FileUploads.Any(f => f.FileType == FileType.Photo))
                {
                    unitOfWork.FileUploadRepository.RemoveGigPhotoFileUpload(gigDB);
                }

                // THEN WE WILL CREATE NEW FILE AND GIVE IT TO THE USER
                var background = FileUpload.GiveGigBackground(System.IO.Path.GetFileName(upload.FileName), upload.ContentType, null, FileType.Photo, gigDB.ID);

                // BLACK MAGIC
                using (var reader = new System.IO.BinaryReader(upload.InputStream))
                {
                    background.Content = reader.ReadBytes(upload.ContentLength);
                }

                // WE ADD THE LIST WITH THE NEW AVATAR FILE TO THE INFLUENCER LIST
                gigDB.FileUploads = new List <FileUpload> {
                    background
                };
            }

            // GO TO DB AND SAVE CHANGES
            unitOfWork.Complete();

            // WHEN EVERYTHING IS DONE GO TO INDEX
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        public ActionResult Create(GigFormViewModel gigFormViewModel, HttpPostedFileBase upload)
        {
            // CHECK IF MODEL IS VALID
            if (!ModelState.IsValid)
            {
                return(View(gigFormViewModel));
            }

            var userId = User.Identity.GetUserId();
            // CREATE NEW GIG

            //Create a Basic Selling Package
            var basicPackage = new BasicPackage(gigFormViewModel);

            unitOfWork.BasicPackageRepository.AddBasicPackage(basicPackage);

            //Create an Advanced Selling Package
            var advancedPackage = new AdvancedPackage(gigFormViewModel);

            unitOfWork.AdvancedPackageRepository.AddAdvancedPackage(advancedPackage);

            //Create a Premium Selling Package
            var premiumPackage = new PremiumPackage(gigFormViewModel);

            unitOfWork.PremiumPackageRepository.AddPremiumPackage(premiumPackage);

            //Get the user Id in order to bind everything together
            var infleuncer = unitOfWork.InfluencerRepository.GetInfluencerForUser(userId);

            if (infleuncer == null)
            {
                return(HttpNotFound());
            }

            // Create a Gig
            var gig = new Gig(gigFormViewModel, userId, infleuncer.ID);


            //IF THERE IS NEW FILE UPLOADED
            if (upload != null && upload.ContentLength > 0)
            {
                //WE WILL CREATE A NEW FILE WITH THE TYPE OF AVATAR (THIS IS WHAT I NEED HERE)
                var background = FileUpload.GiveGigBackground(System.IO.Path.GetFileName(upload.FileName), upload.ContentType, null, FileType.Photo, gig.ID);

                //BLACK MAGIC
                using (var reader = new System.IO.BinaryReader(upload.InputStream))
                {
                    background.Content = reader.ReadBytes(upload.ContentLength);
                }

                // GIVE INFLUENCER THE LIST OF FILES WITH THE AVATAR FILE
                gig.FileUploads = new List <FileUpload> {
                    background
                };
            }

            unitOfWork.GigsRepository.AddGig(gig);

            unitOfWork.Complete();

            // WHEN EVERYTHING IS DONE GO TO INDEX
            return(RedirectToAction("Index"));
        }