// POST: Projects/ProjectCreate public JsonResult ProjectUpdate(List <VMProjectSite> SiteResourceDetails, int?[] DeleteItems, int ProjectId, string ProjectName, DateTime?StartDate, DateTime?EndDate, string Remarks, int RName) { var flag = false; var result = new { flag = false, message = "Saving failed" }; if (DeleteItems != null) { foreach (var i in DeleteItems) { var siteresource = db.ProjectSiteResource.SingleOrDefault(x => x.ProjectSiteId == i); //foreach(var m in siteresource) //{ // var deleteResource = siteresource.Find(m.); //} /* var deleteResource = db.ProjectSiteResource.Find(siteresource)*/; db.ProjectSiteResource.Remove(siteresource); db.SaveChanges(); //var delteItem = db.Proc_MaterialEntryDet.SingleOrDefault(x => x.ItemId == i && x.Proc_PurchaseOrderMasId == ProcPurchaseMasterId); var entryDetId = db.ProjectSite.Find(i); db.ProjectSite.Remove(entryDetId); flag = db.SaveChanges() > 0; } } var existingProject = db.Project.Where(x => x.Id == ProjectId).ToList(); if (existingProject.Count != 0) { var checkdata = db.Project.Where(x => x.Id == ProjectId).SingleOrDefault(); if (checkdata != null) { ProjectResource pres = new ProjectResource(); checkdata.Name = ProjectName; checkdata.StartDate = StartDate; checkdata.EndDate = EndDate; checkdata.Remarks = Remarks; pres.ProjectId = ProjectId; //pres.CompanyResourceId = RName; try { db.Entry(checkdata).State = EntityState.Modified; //var projectResouce = db.ProjectResource.SingleOrDefault(x => x.ProjectId == ProjectId && x.CompanyResourceId == ); var projectResouce = db.ProjectResource.SingleOrDefault(x => x.ProjectId == ProjectId); //projectResouce.CompanyResourceId = RName; db.Entry(projectResouce).State = EntityState.Modified; } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { //dbContextTransaction.Rollback(); Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } flag = db.SaveChanges() > 0; if (flag == true) { if (SiteResourceDetails != null) { try { foreach (var item in SiteResourceDetails) { ProjectSite sites = new ProjectSite(); ProjectSiteResource pSiteRes = new ProjectSiteResource(); sites.ProjectId = ProjectId; sites.Name = item.SiteName; sites.Location = item.SiteLocation; pSiteRes.CompanyResourceId = item.SiteEngineerId; var checkingProjectSites = db.ProjectSite.FirstOrDefault(x => x.Id == item.ProjectSiteId); flag = false; if (checkingProjectSites == null) { db.Entry(sites).State = EntityState.Added; db.Entry(pSiteRes).State = EntityState.Added; } else { var ProjectSite = db.ProjectSite.Where(x => x.ProjectId == ProjectId && x.Id == item.ProjectSiteId).FirstOrDefault(); var ProjectSiteEngineer = db.ProjectSiteResource.Where(x => x.ProjectSiteId == ProjectSite.Id && ProjectSite.ProjectId == ProjectId).FirstOrDefault(); ProjectSite.ProjectId = ProjectId; ProjectSite.Name = item.SiteName; ProjectSite.Location = item.SiteLocation; pSiteRes.CompanyResourceId = item.SiteEngineerId; ProjectSiteEngineer.CompanyResource.Name = item.SiteEngineer; db.Entry(ProjectSite).State = EntityState.Modified; db.Entry(ProjectSiteEngineer.CompanyResource).State = EntityState.Modified; } db.SaveChanges(); } result = new { flag = true, message = "Edit saving successful !" }; return(Json(result, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { } } } } return(Json(result, JsonRequestBehavior.AllowGet)); } else { result = new { flag = false, message = "Project and Project Sites already exist!" }; return(Json(result, JsonRequestBehavior.AllowGet)); } }
// POST: Projects/ProjectCreate public JsonResult ProjectCreate(List <VMProjectSite> SiteResourceDetails, string ProjectName, DateTime?StartDate, DateTime?EndDate, string Remarks, int RName) { var result = new { flag = false, message = "Saving failed" }; var check = db.Project.Where(x => x.Name.Trim().ToUpper() == ProjectName.Trim().ToUpper()).ToList(); if (check.Count == 0) { if (ProjectName.Trim() != "") { Project project = new Project(); ProjectResource projectResource = new ProjectResource(); using (var dbContextTransaction = db.Database.BeginTransaction()) { try { project.Name = ProjectName; project.StartDate = StartDate; project.EndDate = EndDate; project.Remarks = Remarks; //projectResource.ProjectId = project.Id; projectResource.CompanyResourceId = RName; db.Project.Add(project); db.ProjectResource.Add(projectResource); db.SaveChanges(); var projectId = project.Id; ViewBag.ProjectId = projectId; if (SiteResourceDetails != null) { foreach (var item in SiteResourceDetails) { ProjectSite projectSite = new ProjectSite(); ProjectSiteResource projectSiteResource = new ProjectSiteResource(); projectSite.ProjectId = projectId; projectSite.Name = item.SiteName; projectSite.Location = item.SiteLocation; projectSiteResource.CompanyResourceId = item.SiteEngineerId; db.ProjectSite.Add(projectSite); db.ProjectSiteResource.Add(projectSiteResource); db.SaveChanges(); } } dbContextTransaction.Commit(); //end result = new { flag = true, message = "Project saving successful!" }; } catch (Exception ex) { dbContextTransaction.Rollback(); result = new { flag = false, message = "Saving failed! Error occurred." //message = ex.Message }; } } } else { result = new { flag = false, message = "Saving failed!\nProject name required." }; } } else { result = new { flag = false, message = "Project already exists!" }; } return(Json(result, JsonRequestBehavior.AllowGet)); }
// POST: Projects/ProjectCreate public JsonResult ProjectCreate(List <VMProjectSite> SiteResourceDetails, string ProjectName, DateTime?StartDate, DateTime?EndDate, string Remarks, int RName) { var result = new { flag = false, message = "Saving failed" }; if (ProjectName.Trim() != "") { Project project = new Project(); ProjectResource projectResource = new ProjectResource(); try { project.Name = ProjectName; project.StartDate = StartDate; project.EndDate = EndDate; project.Remarks = Remarks; //projectResource.ProjectId = project.Id; projectResource.CompanyResourceId = RName; db.Project.Add(project); db.ProjectResource.Add(projectResource); db.SaveChanges(); var projectId = project.Id; ViewBag.ProjectId = projectId; //ProjectSite projectSite = new ProjectSite(); //ProjectSiteResource projectSiteResource = new ProjectSiteResource(); //projectSite.ProjectId = project.Id; // projectSite.Name = SiteName; //projectSite.Location = SiteLocation; //projectSiteResource.ProjectSiteId = projectSite.Id; //db.ProjectSite.Add(projectSite); //db.ProjectSiteResource.Add(projectSiteResource); //db.SaveChanges(); if (SiteResourceDetails != null) { foreach (var item in SiteResourceDetails) { ProjectSite projectSite = new ProjectSite(); ProjectSiteResource projectSiteResource = new ProjectSiteResource(); projectSite.ProjectId = projectId; projectSite.Name = item.SiteName; projectSite.Location = item.SiteLocation; projectSiteResource.CompanyResourceId = item.SiteEngineerId; db.ProjectSite.Add(projectSite); db.ProjectSiteResource.Add(projectSiteResource); db.SaveChanges(); } } //end result = new { flag = true, message = "Project saving successful!" }; } catch { result = new { flag = false, message = "Saving failed! Error occurred." }; } } else { result = new { flag = false, message = "Saving failed!\nProject name required." }; } return(Json(result, JsonRequestBehavior.AllowGet)); }
// POST: Projects/ProjectCreate public JsonResult ProjectUpdate(List <VMProjectSite> SiteResourceDetails, int ProjectId, string ProjectName, DateTime?StartDate, DateTime?EndDate, string Remarks, int RName) { var result = new { flag = false, message = "Saving failed" }; var existingProject = db.Project.Where(x => x.Id == ProjectId).ToList(); if (existingProject.Count != 0) { //try //{ var flag = false; var checkdata = db.Project.Where(x => x.Id == ProjectId).SingleOrDefault(); if (checkdata != null) { ProjectResource pres = new ProjectResource(); checkdata.Name = ProjectName; checkdata.StartDate = StartDate; checkdata.EndDate = EndDate; checkdata.Remarks = Remarks; pres.ProjectId = ProjectId; pres.CompanyResourceId = RName; db.Entry(checkdata).State = EntityState.Modified; db.Entry(pres).State = EntityState.Modified; flag = db.SaveChanges() > 0; if (flag == true) { if (SiteResourceDetails != null) { try { foreach (var item in SiteResourceDetails) { ProjectSite sites = new ProjectSite(); ProjectSiteResource pSiteRes = new ProjectSiteResource(); sites.ProjectId = ProjectId; sites.Name = item.SiteName; sites.Location = item.SiteLocation; pSiteRes.CompanyResourceId = item.SiteEngineerId; var checkingProjectSites = db.ProjectSite.FirstOrDefault(x => x.Id == item.ProjectSiteId); flag = false; if (checkingProjectSites == null) { db.Entry(sites).State = EntityState.Added; db.Entry(pSiteRes).State = EntityState.Added; } else { var ProjectSite = db.ProjectSite.Where(x => x.ProjectId == ProjectId && x.Id == item.ProjectSiteId).FirstOrDefault(); var ProjectSiteEngineer = db.ProjectSiteResource.Where(x => x.ProjectSiteId == ProjectSite.Id && ProjectSite.ProjectId == ProjectId).FirstOrDefault(); ProjectSite.ProjectId = ProjectId; ProjectSite.Name = item.SiteName; ProjectSite.Location = item.SiteLocation; pSiteRes.CompanyResourceId = item.SiteEngineerId; ProjectSiteEngineer.CompanyResource.Name = item.SiteEngineer; db.Entry(ProjectSite).State = EntityState.Modified; db.Entry(ProjectSiteEngineer.CompanyResource).State = EntityState.Modified; } db.SaveChanges(); } result = new { flag = true, message = "Edit saving successful !" }; return(Json(result, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { } } } } return(Json(result, JsonRequestBehavior.AllowGet)); } else { result = new { flag = false, message = "Project and Project Sites already exist!" }; return(Json(result, JsonRequestBehavior.AllowGet)); } }