public ActionResult _CreatePost(PersonProcessViewModel svm) { if (ModelState.IsValid) { if (svm.PersonProcessId == 0) { PersonProcess PersonProcess = new PersonProcess(); PersonProcess.PersonId = svm.PersonId; PersonProcess.PersonRateGroupId = svm.PersonRateGroupId; PersonProcess.ProcessId = svm.ProcessId; PersonProcess.CreatedDate = DateTime.Now; PersonProcess.ModifiedDate = DateTime.Now; PersonProcess.CreatedBy = User.Identity.Name; PersonProcess.ModifiedBy = User.Identity.Name; PersonProcess.ObjectState = Model.ObjectState.Added; _PersonProcessService.Create(PersonProcess); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Create", svm)); } return(RedirectToAction("_Create", new { id = PersonProcess.PersonId })); } else { PersonProcess PersonProcess = _PersonProcessService.Find(svm.PersonProcessId); PersonProcess.ProcessId = svm.ProcessId; PersonProcess.PersonRateGroupId = svm.PersonRateGroupId; _PersonProcessService.Update(PersonProcess); try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(PartialView("_Create", svm)); } return(Json(new { success = true })); } } return(PartialView("_Create", svm)); }
public ActionResult Create(EmployeeViewModel EmployeeVm) { string[] ProcessIdArr; if (EmployeeVm.LedgerAccountGroupId == 0) { PrepareViewBag(); return(View(EmployeeVm).Danger("Account Group field is required")); } if (_PersonService.CheckDuplicate(EmployeeVm.Name, EmployeeVm.Suffix, EmployeeVm.PersonId) == true) { PrepareViewBag(); return(View(EmployeeVm).Danger("Combination of name and sufix is duplicate")); } if (ModelState.IsValid) { if (EmployeeVm.PersonId == 0) { Person person = Mapper.Map <EmployeeViewModel, Person>(EmployeeVm); BusinessEntity businessentity = Mapper.Map <EmployeeViewModel, BusinessEntity>(EmployeeVm); Employee Employee = Mapper.Map <EmployeeViewModel, Employee>(EmployeeVm); PersonAddress personaddress = Mapper.Map <EmployeeViewModel, PersonAddress>(EmployeeVm); LedgerAccount account = Mapper.Map <EmployeeViewModel, LedgerAccount>(EmployeeVm); person.DocTypeId = new DocumentTypeService(_unitOfWork).Find(MasterDocTypeConstants.Employee).DocumentTypeId; person.CreatedDate = DateTime.Now; person.ModifiedDate = DateTime.Now; person.CreatedBy = User.Identity.Name; person.ModifiedBy = User.Identity.Name; person.ObjectState = Model.ObjectState.Added; new PersonService(_unitOfWork).Create(person); string Divisions = EmployeeVm.DivisionIds; if (Divisions != null) { Divisions = "|" + Divisions.Replace(",", "|,|") + "|"; } businessentity.DivisionIds = Divisions; string Sites = EmployeeVm.SiteIds; if (Sites != null) { Sites = "|" + Sites.Replace(",", "|,|") + "|"; } businessentity.SiteIds = Sites; _BusinessEntityService.Create(businessentity); _EmployeeService.Create(Employee); personaddress.AddressType = AddressTypeConstants.Work; personaddress.CreatedDate = DateTime.Now; personaddress.ModifiedDate = DateTime.Now; personaddress.CreatedBy = User.Identity.Name; personaddress.ModifiedBy = User.Identity.Name; personaddress.ObjectState = Model.ObjectState.Added; _PersonAddressService.Create(personaddress); account.LedgerAccountName = person.Name; account.LedgerAccountSuffix = person.Suffix; account.CreatedDate = DateTime.Now; account.ModifiedDate = DateTime.Now; account.CreatedBy = User.Identity.Name; account.ModifiedBy = User.Identity.Name; account.ObjectState = Model.ObjectState.Added; _AccountService.Create(account); if (EmployeeVm.ProcessIds != null && EmployeeVm.ProcessIds != "") { ProcessIdArr = EmployeeVm.ProcessIds.Split(new Char[] { ',' }); for (int i = 0; i <= ProcessIdArr.Length - 1; i++) { PersonProcess personprocess = new PersonProcess(); personprocess.PersonId = Employee.PersonID; personprocess.ProcessId = Convert.ToInt32(ProcessIdArr[i]); personprocess.CreatedDate = DateTime.Now; personprocess.ModifiedDate = DateTime.Now; personprocess.CreatedBy = User.Identity.Name; personprocess.ModifiedBy = User.Identity.Name; personprocess.ObjectState = Model.ObjectState.Added; _PersonProcessService.Create(personprocess); } } if (EmployeeVm.PanNo != "" && EmployeeVm.PanNo != null) { PersonRegistration personregistration = new PersonRegistration(); personregistration.RegistrationType = PersonRegistrationType.PANNo; personregistration.RegistrationNo = EmployeeVm.PanNo; personregistration.CreatedDate = DateTime.Now; personregistration.ModifiedDate = DateTime.Now; personregistration.CreatedBy = User.Identity.Name; personregistration.ModifiedBy = User.Identity.Name; personregistration.ObjectState = Model.ObjectState.Added; _PersonRegistrationService.Create(personregistration); } try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); PrepareViewBag(); return(View(EmployeeVm)); } #region //Saving Images if any uploaded after UnitOfWorkSave if (Request.Files[0] != null && Request.Files[0].ContentLength > 0) { //For checking the first time if the folder exists or not----------------------------- string uploadfolder; int MaxLimit; int.TryParse(ConfigurationManager.AppSettings["MaxFileUploadLimit"], out MaxLimit); var x = (from iid in db.Counter select iid).FirstOrDefault(); if (x == null) { uploadfolder = System.Guid.NewGuid().ToString(); Counter img = new Counter(); img.ImageFolderName = uploadfolder; img.ModifiedBy = User.Identity.Name; img.CreatedBy = User.Identity.Name; img.ModifiedDate = DateTime.Now; img.CreatedDate = DateTime.Now; new CounterService(_unitOfWork).Create(img); _unitOfWork.Save(); } else { uploadfolder = x.ImageFolderName; } //For checking if the image contents length is greater than 100 then create a new folder------------------------------------ if (!Directory.Exists(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder))) { Directory.CreateDirectory(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)); } int count = Directory.GetFiles(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)).Length; if (count >= MaxLimit) { uploadfolder = System.Guid.NewGuid().ToString(); var u = new CounterService(_unitOfWork).Find(x.CounterId); u.ImageFolderName = uploadfolder; new CounterService(_unitOfWork).Update(u); _unitOfWork.Save(); } //Saving Thumbnails images: Dictionary <string, string> versions = new Dictionary <string, string>(); //Define the versions to generate versions.Add("_thumb", "maxwidth=100&maxheight=100"); //Crop to square thumbnail versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg string temp2 = ""; string filename = System.Guid.NewGuid().ToString(); foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys) { HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey]; if (pfile.ContentLength <= 0) { continue; //Skip unused file controls. } temp2 = Path.GetExtension(pfile.FileName); string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder); if (!Directory.Exists(uploadFolder)) { Directory.CreateDirectory(uploadFolder); } string filecontent = Path.Combine(uploadFolder, EmployeeVm.Name + "_" + filename); //pfile.SaveAs(filecontent); ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true)); //Generate each version foreach (string suffix in versions.Keys) { if (suffix == "_thumb") { string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs"); if (!Directory.Exists(tuploadFolder)) { Directory.CreateDirectory(tuploadFolder); } //Generate a filename (GUIDs are best). string tfileName = Path.Combine(tuploadFolder, EmployeeVm.Name + "_" + filename); //Let the image builder add the correct extension based on the output file type //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true); ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true)); } else if (suffix == "_medium") { string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium"); if (!Directory.Exists(tuploadFolder)) { Directory.CreateDirectory(tuploadFolder); } //Generate a filename (GUIDs are best). string tfileName = Path.Combine(tuploadFolder, EmployeeVm.Name + "_" + filename); //Let the image builder add the correct extension based on the output file type //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true); ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true)); } } //var tempsave = _FinishedProductService.Find(pt.ProductId); person.ImageFileName = EmployeeVm.Name + "_" + filename + temp2; person.ImageFolderName = uploadfolder; person.ObjectState = Model.ObjectState.Modified; _PersonService.Update(person); _unitOfWork.Save(); } } #endregion //return RedirectToAction("Create").Success("Data saved successfully"); return(RedirectToAction("Edit", new { id = Employee.PersonID }).Success("Data saved Successfully")); } else { //string tempredirect = (Request["Redirect"].ToString()); Person person = Mapper.Map <EmployeeViewModel, Person>(EmployeeVm); BusinessEntity businessentity = Mapper.Map <EmployeeViewModel, BusinessEntity>(EmployeeVm); Employee Employee = Mapper.Map <EmployeeViewModel, Employee>(EmployeeVm); PersonAddress personaddress = _PersonAddressService.Find(EmployeeVm.PersonAddressID); LedgerAccount account = _AccountService.Find(EmployeeVm.AccountId); PersonRegistration PersonPan = _PersonRegistrationService.Find(EmployeeVm.PersonRegistrationPanNoID); StringBuilder logstring = new StringBuilder(); person.ModifiedDate = DateTime.Now; person.ModifiedBy = User.Identity.Name; new PersonService(_unitOfWork).Update(person); string Divisions = EmployeeVm.DivisionIds; if (Divisions != null) { Divisions = "|" + Divisions.Replace(",", "|,|") + "|"; } businessentity.DivisionIds = Divisions; string Sites = EmployeeVm.SiteIds; if (Sites != null) { Sites = "|" + Sites.Replace(",", "|,|") + "|"; } businessentity.SiteIds = Sites; _BusinessEntityService.Update(businessentity); _EmployeeService.Update(Employee); personaddress.Address = EmployeeVm.Address; personaddress.CityId = EmployeeVm.CityId; personaddress.Zipcode = EmployeeVm.Zipcode; personaddress.ModifiedDate = DateTime.Now; personaddress.ModifiedBy = User.Identity.Name; personaddress.ObjectState = Model.ObjectState.Modified; _PersonAddressService.Update(personaddress); account.LedgerAccountName = person.Name; account.LedgerAccountSuffix = person.Suffix; account.ModifiedDate = DateTime.Now; account.ModifiedBy = User.Identity.Name; _AccountService.Update(account); if (EmployeeVm.ProcessIds != "" && EmployeeVm.ProcessIds != null) { IEnumerable <PersonProcess> personprocesslist = _PersonProcessService.GetPersonProcessList(EmployeeVm.PersonId); foreach (PersonProcess item in personprocesslist) { new PersonProcessService(_unitOfWork).Delete(item.PersonProcessId); } ProcessIdArr = EmployeeVm.ProcessIds.Split(new Char[] { ',' }); for (int i = 0; i <= ProcessIdArr.Length - 1; i++) { PersonProcess personprocess = new PersonProcess(); personprocess.PersonId = Employee.PersonID; personprocess.ProcessId = Convert.ToInt32(ProcessIdArr[i]); personprocess.CreatedDate = DateTime.Now; personprocess.ModifiedDate = DateTime.Now; personprocess.CreatedBy = User.Identity.Name; personprocess.ModifiedBy = User.Identity.Name; personprocess.ObjectState = Model.ObjectState.Added; _PersonProcessService.Create(personprocess); } } if (EmployeeVm.PanNo != null && EmployeeVm.PanNo != "") { if (PersonPan != null) { PersonPan.RegistrationNo = EmployeeVm.PanNo; _PersonRegistrationService.Update(PersonPan); } else { PersonRegistration personregistration = new PersonRegistration(); personregistration.PersonId = EmployeeVm.PersonId; personregistration.RegistrationType = PersonRegistrationType.PANNo; personregistration.RegistrationNo = EmployeeVm.PanNo; personregistration.CreatedDate = DateTime.Now; personregistration.ModifiedDate = DateTime.Now; personregistration.CreatedBy = User.Identity.Name; personregistration.ModifiedBy = User.Identity.Name; personregistration.ObjectState = Model.ObjectState.Added; _PersonRegistrationService.Create(personregistration); } } ////Saving Activity Log:: ActivityLog al = new ActivityLog() { ActivityType = (int)ActivityTypeContants.Modified, DocId = EmployeeVm.PersonId, Narration = logstring.ToString(), CreatedDate = DateTime.Now, CreatedBy = User.Identity.Name, //DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(TransactionDocCategoryConstants.ProcessSequence).DocumentTypeId, }; new ActivityLogService(_unitOfWork).Create(al); //End of Saving ActivityLog try { _unitOfWork.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); PrepareViewBag(); return(View("Create", EmployeeVm)); } #region //Saving Image if file is uploaded if (Request.Files[0] != null && Request.Files[0].ContentLength > 0) { string uploadfolder = EmployeeVm.ImageFolderName; string tempfilename = EmployeeVm.ImageFileName; if (uploadfolder == null) { var x = (from iid in db.Counter select iid).FirstOrDefault(); if (x == null) { uploadfolder = System.Guid.NewGuid().ToString(); Counter img = new Counter(); img.ImageFolderName = uploadfolder; img.ModifiedBy = User.Identity.Name; img.CreatedBy = User.Identity.Name; img.ModifiedDate = DateTime.Now; img.CreatedDate = DateTime.Now; new CounterService(_unitOfWork).Create(img); _unitOfWork.Save(); } else { uploadfolder = x.ImageFolderName; } } //Deleting Existing Images var xtemp = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename); if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename))) { System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename)); } //Deleting Thumbnail Image: if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename))) { System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename)); } //Deleting Medium Image: if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename))) { System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename)); } //Saving Thumbnails images: Dictionary <string, string> versions = new Dictionary <string, string>(); //Define the versions to generate versions.Add("_thumb", "maxwidth=100&maxheight=100"); //Crop to square thumbnail versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg string temp2 = ""; string filename = System.Guid.NewGuid().ToString(); foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys) { HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey]; if (pfile.ContentLength <= 0) { continue; //Skip unused file controls. } temp2 = Path.GetExtension(pfile.FileName); string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder); if (!Directory.Exists(uploadFolder)) { Directory.CreateDirectory(uploadFolder); } string filecontent = Path.Combine(uploadFolder, EmployeeVm.Name + "_" + filename); //pfile.SaveAs(filecontent); ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true)); //Generate each version foreach (string suffix in versions.Keys) { if (suffix == "_thumb") { string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs"); if (!Directory.Exists(tuploadFolder)) { Directory.CreateDirectory(tuploadFolder); } //Generate a filename (GUIDs are best). string tfileName = Path.Combine(tuploadFolder, EmployeeVm.Name + "_" + filename); //Let the image builder add the correct extension based on the output file type //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true); ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true)); } else if (suffix == "_medium") { string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium"); if (!Directory.Exists(tuploadFolder)) { Directory.CreateDirectory(tuploadFolder); } //Generate a filename (GUIDs are best). string tfileName = Path.Combine(tuploadFolder, EmployeeVm.Name + "_" + filename); //Let the image builder add the correct extension based on the output file type //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true); ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true)); } } } var temsave = _PersonService.Find(person.PersonID); person.ImageFileName = temsave.Name + "_" + filename + temp2; temsave.ImageFolderName = uploadfolder; _PersonService.Update(temsave); _unitOfWork.Save(); } #endregion return(RedirectToAction("Index").Success("Data saved successfully")); } } PrepareViewBag(); return(View(EmployeeVm)); }