public ActionResult Edit(SavePopDashboardViewModel viewModel, HttpPostedFileBase file) { var request = viewModel.MapTo <SavePopDashboardRequest>(); ProcessAttachment(viewModel, request); var response = _popDashboardService.SavePopDashboard(request); TempData["IsSuccess"] = response.IsSuccess; TempData["Message"] = response.Message; if (response.IsSuccess) { return(RedirectToAction("Index")); } return(View("Create", viewModel)); }
public ActionResult Create() { var viewModel = new SavePopDashboardViewModel(); var StatusList = new List <SelectListItem>() { new SelectListItem { Value = "Not Start Yet", Text = "Not Start Yet" }, new SelectListItem { Value = "In Progress", Text = "In Progress" }, new SelectListItem { Value = "Finish", Text = "Finish" } }; viewModel.StatusOptions = StatusList; return(View(viewModel)); }
private void ProcessAttachment(SavePopDashboardViewModel viewModel, SavePopDashboardRequest request) { if (viewModel.Attachments.Count > 0) { var validImageTypes = new string[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; var pdfType = "application/pdf"; var excelTypes = new string[] { "application/vnd.ms-excel", "application/msexcel", "application/x-msexcel", "application/x-ms-excel", "application/x-excel", "application/x-dos_ms_excel", "application/xls", "application/x-xls", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }; var docTypes = new string[] { "application/msword", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "application/vnd.ms-word.document.macroEnabled.12", "application/vnd.ms-word.template.macroEnabled.12" }; var pptTypes = new string[] { "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.openxmlformats-officedocument.presentationml.template", "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "application/vnd.ms-powerpoint.addin.macroEnabled.12", "application/vnd.ms-powerpoint.presentation.macroEnabled.12", "application/vnd.ms-powerpoint.template.macroEnabled.12", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" }; foreach (var attachment in viewModel.Attachments) { if (attachment.File != null) { //var filename = Path.GetFileName(attachment.File.FileName); string type = null; if (attachment.File.ContentType == pdfType) { type = "pdf"; } else if (validImageTypes.Contains(attachment.File.ContentType)) { type = "image"; } else if (excelTypes.Contains(attachment.File.ContentType)) { type = "excel"; } else if (docTypes.Contains(attachment.File.ContentType)) { type = "doc"; } else if (pptTypes.Contains(attachment.File.ContentType)) { type = "ppt"; } else { type = "blank"; } if (!Directory.Exists(Server.MapPath(PathConstant.PopAttachmentPath))) { Directory.CreateDirectory(Server.MapPath(PathConstant.PopAttachmentPath)); } var filename = attachment.File.FileName; var uniqueFilename = RandomString(8) + MakeValidFileName(attachment.File.FileName).Replace(" ", "_"); var filePath = Path.Combine(Server.MapPath(PathConstant.PopAttachmentPath), uniqueFilename); var url = PathConstant.PopAttachmentPath + "/" + uniqueFilename; attachment.File.SaveAs(filePath); var attachmentReq = new SavePopDashboardRequest.Attachment { Id = attachment.Id, FileName = url, Alias = string.IsNullOrEmpty(attachment.Alias) ? filename : attachment.Alias, Type = type }; request.AttachmentFiles.Add(attachmentReq); } else { if (attachment.Id != 0) { var attachmentReq = new SavePopDashboardRequest.Attachment { Id = attachment.Id, Alias = attachment.Alias, }; request.AttachmentFiles.Add(attachmentReq); } } } } }