internal Dictionary <string, ServiceAppointment> parseAdditionalData(List <ServiceAppointment> i_DeserializedQueryRecords) { Dictionary <string, ServiceAppointment> services = new Dictionary <string, ServiceAppointment>(); foreach (ServiceAppointment service in i_DeserializedQueryRecords) { ServiceTerritory territory = null; OperatingHours opHours = null; List <AssignedResource> resources = null; if (service.m_JSONAdditionalData.TryGetValue("ServiceTerritory", out var territoryToken)) { territory = territoryToken.ToObject <ServiceTerritory>(); if (territory != null) { JToken opHoursToken = territory.m_JSONAdditionalData["OperatingHours"]; opHours = opHoursToken.ToObject <OperatingHours>(); territory.Id = service.ServiceTerritoryId; territory.OperatingHours = opHours; } } if (service.m_JSONAdditionalData.TryGetValue("ServiceResources", out var resourcesToken)) { resources = resourcesToken.ToObject <List <AssignedResource> >(); } service.ServiceResources = resources; service.ServiceTerritory = territory; services.Add(service.Id, service); } return(services); }
public void GenerateDeadArea() { try { IGeometry pCoverageGeom = null; IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace)_workspace; IWorkspaceEdit pWorspaceEdit = (IWorkspaceEdit)pFeatureWorkspace; ServiceTerritory pST = new ServiceTerritory(_workspace, "Main"); if (pST.ServiceTerritoryFeature != null) { if (pCoverageGeom == null) { pCoverageGeom = pST.ServiceTerritoryFeature.Shape; } else { ITopologicalOperator pTopoUnion = (ITopologicalOperator)pCoverageGeom; pCoverageGeom = pTopoUnion.Union(pST.ServiceTerritoryFeature.Shape); } } IFeatureClass pServiceFC = pFeatureWorkspace.OpenFeatureClass("ServiceTerritory"); IFeatureCursor pServiceCursor = pServiceFC.Search(null, false); IFeature pServiceFeature = pServiceCursor.NextFeature(); ITopologicalOperator pTopoClip = (ITopologicalOperator)pServiceFeature.Shape; IGeometry pDeadArea = pTopoClip.Difference(pCoverageGeom); IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)_workspace; pWorkspaceEdit.StartEditing(true); pWorkspaceEdit.StartEditOperation(); IFeatureClass pDeadFC = pFeatureWorkspace.OpenFeatureClass("DeadArea"); IFeatureCursor pDeleteCursor = pDeadFC.Search(null, false); IFeature pExistingFeature = pDeleteCursor.NextFeature(); while (pExistingFeature != null) { pExistingFeature.Delete(); pExistingFeature = pDeleteCursor.NextFeature(); } IFeature pDeadFeature = pDeadFC.CreateFeature(); pDeadFeature.Shape = pDeadArea; //pDeadFeature.set_Value(pDeadFeature.Fields.FindField("COVERAGE_PCT"), dead_pct); pDeadFeature.Store(); pWorkspaceEdit.StopEditOperation(); pWorkspaceEdit.StopEditing(true); int dead_pct = (int)(100 * ((IArea)pDeadFeature.Shape).Area / ((IArea)pServiceFeature.Shape).Area); int reception_pct = 100 - dead_pct; //pST.UpdateCoveragePct(dead_pct, reception_pct); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public HttpResponseMessage updateTerritoryBase([FromBody] requestMasterData request) { var msg = "successfully saved"; var isSuccess = false; HttpResponseMessage message; using (EverestPortalContext context = new EverestPortalContext()) { if (Convert.ToString(request.Action).Equals("delete", StringComparison.InvariantCultureIgnoreCase)) { var deleteEntity = context.serviceTerritory.FirstOrDefault(c => c.ServiceTerritoryId == request.ServiceTerritoryId); context.serviceTerritory.Remove(deleteEntity); context.SaveChanges(); msg = "Successfully removed"; var deleteResponse = new { msg, isSuccess = true }; message = Request.CreateResponse(HttpStatusCode.OK, deleteResponse); return(message); } if (request.ServiceTerritoryId != null && request.ServiceTerritoryId != 0) { if (context.serviceTerritory.Any(s => s.TerritoryBase.Equals(request.TerritoryBase, StringComparison.InvariantCultureIgnoreCase) && s.ServiceTerritoryId != request.ServiceTerritoryId)) { msg = "Name already exists"; isSuccess = false; } else { var updateEntity = context.serviceTerritory.FirstOrDefault(c => c.ServiceTerritoryId == request.ServiceTerritoryId); updateEntity.TerritoryBase = request.TerritoryBase; isSuccess = true; } } else { if (context.serviceTerritory.Any(s => s.TerritoryBase.Equals(request.TerritoryBase, StringComparison.InvariantCultureIgnoreCase))) { msg = "Name already exists"; isSuccess = false; } else { var newEntity = new ServiceTerritory() { TerritoryBase = request.TerritoryBase }; context.serviceTerritory.Add(newEntity); isSuccess = true; } }; context.SaveChanges(); var response = new { msg, isSuccess }; message = Request.CreateResponse(HttpStatusCode.OK, response); return(message); } }