public ActionResult UpdateOrganization(OrganizationInformationViewModel model, HttpPostedFileBase file)
        {
            if (model != null && this.ModelState.IsValid)
            {
                var organization = new Organization()
                {
                    Id = model.Id,
                    AboutInfo = model.AboutInfo,
                    Name = model.Name,
                    PhoneNumber = model.PhoneNumber
                };

                // TODO: Extract this logic somewhere
                if (file != null)
                {
                    var extension = file.FileName.Substring(file.FileName.LastIndexOf("."));

                    if (!this.organizationImages.ValidateFileExtention(extension))
                    {
                        this.ModelState.AddModelError(string.Empty, $"The Image Should be {GlobalConstants.JpgFileExtension} or {GlobalConstants.PngFileExtension}.");
                        return this.View("Index", model);
                    }

                    var imageName = Guid.NewGuid();
                    var savePath = $"/Images/{organization.Name}/{imageName}{extension}";
                    var saveDirPathMapped = System.IO.Path.GetDirectoryName(this.Server.MapPath(savePath));
                    if (!System.IO.Directory.Exists(saveDirPathMapped))
                    {
                        System.IO.Directory.CreateDirectory(saveDirPathMapped);
                    }

                    file.SaveAs(this.Server.MapPath(savePath));

                    var image = new OrganizationImage()
                    {
                        Name = imageName.ToString(),
                        Url = savePath
                    };

                    organization.OrganizationImage = image;
                }

                this.organizations.Update(organization);
                return this.RedirectToAction(x => x.Index());
            }

            return this.View("Index", model);
        }
Beispiel #2
0
        public ActionResult UpdateOrganization(OrganizationInformationViewModel model, HttpPostedFileBase file)
        {
            if (model != null && this.ModelState.IsValid)
            {
                var organization = new Organization()
                {
                    Id          = model.Id,
                    AboutInfo   = model.AboutInfo,
                    Name        = model.Name,
                    PhoneNumber = model.PhoneNumber
                };

                // TODO: Extract this logic somewhere
                if (file != null)
                {
                    var extension = file.FileName.Substring(file.FileName.LastIndexOf("."));

                    if (!this.organizationImages.ValidateFileExtention(extension))
                    {
                        this.ModelState.AddModelError(string.Empty, $"The Image Should be {GlobalConstants.JpgFileExtension} or {GlobalConstants.PngFileExtension}.");
                        return(this.View("Index", model));
                    }

                    var imageName         = Guid.NewGuid();
                    var savePath          = $"/Images/{organization.Name}/{imageName}{extension}";
                    var saveDirPathMapped = System.IO.Path.GetDirectoryName(this.Server.MapPath(savePath));
                    if (!System.IO.Directory.Exists(saveDirPathMapped))
                    {
                        System.IO.Directory.CreateDirectory(saveDirPathMapped);
                    }

                    file.SaveAs(this.Server.MapPath(savePath));

                    var image = new OrganizationImage()
                    {
                        Name = imageName.ToString(),
                        Url  = savePath
                    };

                    organization.OrganizationImage = image;
                }

                this.organizations.Update(organization);
                return(this.RedirectToAction(x => x.Index()));
            }

            return(this.View("Index", model));
        }