protected virtual ProjectSite GetProjectSiteFromReader(IDataReader reader) { EntityConverter <ProjectSite> ProjectSiteEntity = new EntityConverter <ProjectSite>(); ProjectSite projectSite = ProjectSiteEntity.Convert(reader); return(projectSite); }
public HttpResponseMessage Post(ProjectSite value) { if (!User.Identity.IsAuthenticated) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)); } if (String.IsNullOrEmpty(value.PolygonGeometry)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)); } if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("STATSMIX_URL"))) { // STATSMIX_URL is populated by AppHarbor, so we must be in deployment; log this event to our StatsMix metrics StatsMix.Client smClient = new StatsMix.Client("3cc98589f0c307a4096b"); Dictionary <string, string> properties = new Dictionary <string, string>(0); Dictionary <string, string> meta = new Dictionary <string, string>(1); meta.Add("User", User.Identity.Name); smClient.track("Add Site", 1, properties, meta); } value.UserId = User.Identity.Name; ProjectSite site = _db.Add(value); var response = Request.CreateResponse <ProjectSite>(HttpStatusCode.Created, site); string uri = Url.Route(null, new { id = site.Id }); response.Headers.Location = new Uri(Request.RequestUri, uri); return(response); }
public ProjectSite Get(string id) { ProjectSite site = _db.GetById(id); if (site == null) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); } if (site.UserId != User.Identity.Name) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)); } // response.Content.Headers.Expires = new DateTimeOffset(DateTime.Now.AddSeconds(300)); return(site); }
public void PutSite(string id, ProjectSite value) { ProjectSite existingSite = this.Get(id); // update by hand, because apparently I'm not bright enough to get this working automagically if (value.Name != null) // ah what the hell, let's allow the name to be empety too { existingSite.Name = value.Name; } if (value.Description != null) // description can be empty { existingSite.Description = value.Description; } if (!String.IsNullOrEmpty(value.PolygonGeometry)) // polygon geometry can't be empty { existingSite.PolygonGeometry = value.PolygonGeometry; } if (_db.Update(existingSite) == null) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); } }
// 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" }; 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 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 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)); } }