示例#1
0
        public async Task AddAsync(ServiceViewModelCreate viewModel, bool isApproved)
        {
            var dataModel = _mapper.Map <Service>(viewModel);

            if (viewModel.Photo != null)
            {
                dataModel.PhotoId = await _photoManager.AddAsync(viewModel.Photo);
            }
            dataModel.IsApproved = isApproved;
            context.Services.Add(dataModel);
            await context.SaveChangesAsync();
        }
        private void imageFileSaver(ServiceViewModelCreate viewModel)
        {
            if (viewModel.UploadPhoto != null)
            {
                var imageName = DateTime.Now.Ticks.ToString();
                var imageExt  = System.IO.Path.GetExtension(viewModel.UploadPhoto.FileName).ToLower();
                var imagePath = "/Content/DataImages/";

                viewModel.Photo     = new PhotoViewModel();
                viewModel.Photo.Url = imagePath + imageName + imageExt;
                viewModel.UploadPhoto.SaveAs(Server.MapPath("~") + viewModel.Photo.Url);
            }
        }
        public async Task <ActionResult> Edit(ServiceViewModelCreate serviceViewModelCreate)
        {
            imageFileValidator(serviceViewModelCreate);
            if (ModelState.IsValid)
            {
                imageFileSaver(serviceViewModelCreate);
                await _serviceManager.ModifyAsync(serviceViewModelCreate);

                return(RedirectToAction("Index"));
            }
            serviceViewModelCreate.ServiceCategories = new SelectList(await _serviceCategoryManager.GetAllAsync(), "Id", "Name");
            return(View(serviceViewModelCreate));
        }
        public async Task <ActionResult> Create()
        {
            var serviceCategories = await _serviceCategoryManager.GetAllAsync();

            if (serviceCategories.Count == 0)
            {
                return(RedirectToAction("Index", new { Message = ManageMessage.NoCategoryError }));
            }
            var serviceViewModelCreate = new ServiceViewModelCreate();

            serviceViewModelCreate.ServiceCategories = new SelectList(serviceCategories, "Id", "Name");

            return(View(serviceViewModelCreate));
        }
        public async Task <ActionResult> Create(ServiceViewModelCreate serviceViewModelCreate)
        {
            imageFileValidator(serviceViewModelCreate);
            if (ModelState.IsValid)
            {
                imageFileSaver(serviceViewModelCreate);
                var isAdministrator = User.IsInRole("Administrator");
                await _serviceManager.AddAsync(serviceViewModelCreate, isAdministrator);

                return(RedirectToAction("Index"));
            }
            serviceViewModelCreate.ServiceCategories = new SelectList(await _serviceCategoryManager.GetAllAsync(), "Id", "Name");
            return(View(serviceViewModelCreate));
        }
示例#6
0
 public async Task ModifyAsync(ServiceViewModelCreate viewModel, bool isApproved = true)
 {
     if (await context.Services.AnyAsync(x => x.Id == viewModel.Id))
     {
         var dataModel = _mapper.Map <Service>(viewModel);
         if (viewModel.Photo != null)
         {
             dataModel.PhotoId = await _photoManager.AddAsync(viewModel.Photo);
         }
         dataModel.IsApproved = isApproved;
         context.Services.Attach(dataModel);
         context.Entry <Service>(dataModel).State = EntityState.Modified;
         await context.SaveChangesAsync();
     }
     else
     {
         throw new Exception();
     }
 }
        private void imageFileValidator(ServiceViewModelCreate serviceViewModelCreate)
        {
            if (serviceViewModelCreate.UploadPhoto != null)
            {
                var imageTypes = new string[] {
                    "image/bmp",
                    "image/gif",
                    "image/jpeg",
                    "image/pjpeg",
                    "image/png"
                };

                if (serviceViewModelCreate.UploadPhoto.ContentLength == 0)
                {
                    ModelState.AddModelError("UploadPhoto", "File cannot be zero size");
                }
                else if (!imageTypes.Contains(serviceViewModelCreate.UploadPhoto.ContentType))
                {
                    ModelState.AddModelError("UploadPhoto", "Please choose either a BMP, GIF, JPG or PNG image.");
                }
            }
        }