コード例 #1
0
        public async Task <ActionResult <OrganizationView> > CreateOrganizationAsync([FromBody] OrganizationCreateRequest organizationCreateRequest)
        {
            var currentUserId = GetCurrentUserId();

            try
            {
                var createdOrg = await organizationManager.AddAsync(organizationCreateRequest, currentUserId);

                OrganizationView newOrg = await createdOrg
                                          .ProjectTo <OrganizationView>(mapper.ConfigurationProvider)
                                          .SingleAsync();

                return(Ok(newOrg));
            }
            catch (ArgumentNullException ane)
            {
                logger.LogDebug(ane.Message + "\n" + ane.StackTrace);
                logger.LogDebug($"User {currentUserId} doesn't exist in current database");
                return(Forbid(JwtBearerDefaults.AuthenticationScheme, CookieAuthenticationDefaults.AuthenticationScheme));
            }
            catch (ArgumentException ae)
            {
                logger.LogDebug(ae.Message + "\n" + ae.StackTrace);
                logger.LogDebug($"Organization with name '{organizationCreateRequest.Name}' already exists");
                return(BadRequest($"Organization with name '{organizationCreateRequest.Name}' already exists"));
            }
            catch (Exception ex)
            {
                logger.LogDebug(ex.Message + "\n" + ex.StackTrace);
                return(StatusCode(500));
            }
        }
コード例 #2
0
        private void OrganizationView_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                TreeNode Node = OrganizationView.GetNodeAt(e.X, e.Y);
                if (Node == null)
                {
                    return;
                }

                OrganizationView.SelectedNode = Node;
                if (OrganizationView.SelectedNode != OrganizationView.TopNode)
                {
                    contextMenuStrip1.Show(OrganizationView, new Point(e.X, e.Y));
                }
            }
        }
コード例 #3
0
 public ActionResult GridData()
 {
     Func<Organization, ICollection<Organization>, OrganizationView> getOrganizationView = null;
     getOrganizationView = (org, source) =>
     {
         OrganizationView view = new OrganizationView(org);
         List<Organization> children = source.Where(m => m.TreePathIds.Length == org.TreePathIds.Length + 1
             && m.TreePath.StartsWith(m.TreePath)).ToList();
         foreach (Organization child in children)
         {
             OrganizationView childView = getOrganizationView(child, source);
             view.children.Add(childView);
         }
         return view;
     };
     List<Organization> roots = IdentityContract.Organizations.Where(m => m.Parent == null).OrderBy(m => m.SortCode).ToList();
     List<OrganizationView> datas = (from root in roots
         let source = IdentityContract.Organizations.Where(m => m.TreePath.StartsWith(root.TreePath)).ToList()
         select getOrganizationView(root, source)).ToList();
     return Json(datas, JsonRequestBehavior.AllowGet);
 }
コード例 #4
0
        public async Task <ActionResult <OrganizationView> > GetOneOrganizationAsync(Guid orgId)
        {
            try
            {
                OrganizationView orgView = await organizationManager.Organizations
                                           .ProjectTo <OrganizationView>(mapper.ConfigurationProvider)
                                           .FirstOrDefaultAsync(org => org.Id == orgId)
                                           ?? throw new ArgumentNullException();

                return(Ok(orgView));
            }
            catch (ArgumentNullException ane)
            {
                logger.LogDebug(ane.Message + "\n" + ane.StackTrace);
                return(NotFound($"Can't find organization {orgId}"));
            }
            catch (Exception ex)
            {
                logger.LogDebug(ex.Message + "\n" + ex.StackTrace);
                return(StatusCode(500));
            }
        }
コード例 #5
0
        public ActionResult GridData()
        {
            Func <Organization, ICollection <Organization>, OrganizationView> getOrganizationView = null;

            getOrganizationView = (org, source) =>
            {
                OrganizationView    view     = new OrganizationView(org);
                List <Organization> children = source.Where(m => m.TreePathIds.Length == org.TreePathIds.Length + 1 &&
                                                            m.TreePath.StartsWith(m.TreePath)).ToList();
                foreach (Organization child in children)
                {
                    OrganizationView childView = getOrganizationView(child, source);
                    view.children.Add(childView);
                }
                return(view);
            };
            List <Organization>     roots = IdentityContract.Organizations.Where(m => m.Parent == null).OrderBy(m => m.SortCode).ToList();
            List <OrganizationView> datas = (from root in roots
                                             let source = IdentityContract.Organizations.Where(m => m.TreePath.StartsWith(root.TreePath)).ToList()
                                                          select getOrganizationView(root, source)).ToList();

            return(Json(datas, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        private bool AddNewAccidentToCDS(AccidentStandardDTO accident)
        {
            try
            {
                context.Database.CommandTimeout = 5000;
                ServiceCall oldServiceCall = GetAccidentFromCDS(accident.IncidentNo);

                if (oldServiceCall != null)
                {
                    try
                    {
                        duplicatedRowsCount++;
                        oldServiceCall.ServiceClassDescription = accident.ClassName;

                        context.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        Utility.WriteLog(ex);
                    }

                    return(true);
                }

                //Service Call
                #region Service Call /Activity

                var newServiceCall = new ServiceCall
                {
                    OriginalIdent                  = accident.IncidentNo,
                    ActivityStartDate              = accident.CreatedTime,
                    ServiceCallCategoryCode        = Truncate(accident.CrashTypeName, 20),
                    ServiceCallCategoryDescription = accident.CrashTypeName,
                    ServiceCallPriorityCode        = Truncate(accident.IncidentTypeName, 20),
                    ServiceCallPriorityDescription = accident.IncidentTypeName,
                    SourceName                   = "CAD",
                    ActivityCategoryCode         = "CAD",
                    ActivityCategoryDescription  = "Calls For Service",
                    ActivityReasonCode           = Truncate(accident.CauseName, 20),
                    ActivityReasonDescription    = accident.CauseName,
                    ServiceCallReceivedDate      = accident.CreatedTime,
                    ServiceCallSourceCode        = "CAD",
                    ServiceCallSourceDescription = "CAD",
                    StatusDescription            = accident.StatusName,
                    StatusCode                   = accident.StatusId, //Pending
                    LanesCount                   = accident.LanesCount,
                    SlightInjuriesCount          = accident.SlightInjuriesCount,
                    MediumInjuriesCount          = accident.MediumInjuriesCount,
                    SevereInjuriesCount          = accident.SevereInjuriesCount,
                    FatalitiesCount              = accident.FatalitiesCount,
                    TotalInjuriesFatalities      = accident.TotalInjuriesFatalities,
                    CrashSeverityCode            = accident.CrashSeverityCode,
                    CrashSeverityDescription     = accident.CrashSeverityName,
                    ActivityDescription          = accident.CrashDescription,
                    LightingConditionDescription = accident.LightingName,
                    //ServiceClassCode = Truncate(ServiceCall.ClassName, 20),
                    ServiceClassDescription = accident.ClassName
                };

                context.ServiceCalls.Add(newServiceCall);
                context.SaveChanges();

                var serviceCallDriver = new ServiceCallDriver
                {
                    SourceName                     = "CAD",
                    DriverNationalityCode          = Truncate(accident.DriverNationality, 20),
                    DriverNationalityDescription   = accident.DriverNationality,
                    DriverLicenceSourceCode        = Truncate(accident.DriverLicenceSource, 20),
                    DriverLicenceSourceDescription = accident.DriverLicenceSource,
                    DriverLicenceTypeCode          = Truncate(accident.DriverLicenceType, 20),
                    DriverLicenceTypeDescription   = accident.DriverLicenceType
                };

                context.ServiceCallDrivers.Add(serviceCallDriver);
                context.SaveChanges();

                var activityPeople = new ActivityPersonView
                {
                    ActivityId                   = newServiceCall.ActivityId,
                    PersonId                     = serviceCallDriver.PersonId,
                    SourceName                   = "CAD",
                    PersonInvolvementCode        = "Service Call Driver",
                    PersonInvolvementDescription = "Service Call Driver",
                };

                context.ActivityPersonViews.Add(activityPeople);
                context.SaveChanges();

                var serviceCallVehicle = new ServiceCallVehicle
                {
                    SourceName                       = "CAD",
                    VehicleLiabilityCode             = Truncate(accident.VehiclesLiability, 20),
                    VehicleLiabilityDescription      = accident.VehiclesLiability,
                    VehicleCollisionPointCode        = Truncate(accident.VehicleCollisionPoint, 20),
                    VehicleCollisionPointDescription = accident.VehicleCollisionPoint,
                    VehicleCountryCode               = Truncate(accident.VehicleCountry, 20),
                    VehicleCountryDescription        = accident.VehicleCountry,
                };

                context.ServiceCallVehicles.Add(serviceCallVehicle);
                context.SaveChanges();

                var activityItem = new ActivityItemView
                {
                    ItemId                     = serviceCallVehicle.ItemId,
                    ActivityId                 = newServiceCall.ActivityId,
                    SourceName                 = "CAD",
                    ItemInvolvementCode        = "Service Call Vehicle",
                    ItemInvolvementDescription = "Service Call Vehicle"
                };

                context.ActivityItemViews.Add(activityItem);
                context.SaveChanges();
                #endregion

                var geoPoint = DbGeometry.FromText(
                    "POINT(" + (accident.Longitude.HasValue ? accident.Longitude.Value : 0) + " " +
                    (accident.Latitude.HasValue ? accident.Latitude.Value : 0) + ")", 4326);

                var _Location = new LocationView
                {
                    LocationCategoryCode        = new Random().Next().ToString(),
                    LocationCategoryDescription = accident.LocationTypeName,
                    Latitude  = accident.Latitude.HasValue ? accident.Latitude.Value : 0,
                    Longitude = accident.Longitude.HasValue ? accident.Longitude.Value : 0,
                    OrgLat    = accident.Latitude.HasValue ? accident.Latitude.Value.ToString() : "0",
                    OrgLong   = accident.Longitude.HasValue ? accident.Longitude.Value.ToString() : "0",
                    locationIntersectionTypeDescription = accident.IntersectionName,
                    GeoStateCode             = Truncate(accident.StateName, 20),
                    GeoStateStateName        = accident.StateName,
                    GeoCityCode              = Truncate(accident.CityName, 20),
                    GeoCityCityName          = accident.CityName,
                    GeoCountyCode            = Truncate(accident.AreaName, 20),
                    GeoCountyCountyName      = accident.AreaName,
                    GeoPoint                 = geoPoint,
                    Address1                 = accident.Address,
                    LocationName             = accident.LocationName,
                    Description              = accident.LocationDescription,
                    locationDatumCode        = "Service Call",
                    locationDatumDescription = "Service Call Location Datum",
                    SourceName               = "CAD",
                };

                context.LocationViews.Add(_Location);
                context.SaveChanges();

                var activityLocation = new ActivityLocationView
                {
                    LocationId                     = _Location.LocationId,
                    CreateDateTimeStamp            = DateTime.Now,
                    ModifiedDateTimeStamp          = DateTime.Now,
                    ActivityId                     = newServiceCall.ActivityId,
                    ActivityLocationDescription    = "Service Call Location",
                    LocationInvolvementCode        = "Incident Location",
                    LocationInvolvementDescription = "Incident Location",
                    SourceName                     = "CAD"
                };

                context.ActivityLocationViews.Add(activityLocation);
                context.SaveChanges();

                var serviceCallInsurance = new ServiceCallInsurance
                {
                    SourceName = "CAD",
                    Name       = accident.InsuranceCompany,
                    InsuranceTypeDescription = accident.InsuranceType
                };

                context.ServiceCallInsurances.Add(serviceCallInsurance);
                context.SaveChanges();

                var activityOrganization = new ActivityOrganization
                {
                    Organizationid = serviceCallInsurance.OrganizationId,
                    ActivityId     = newServiceCall.ActivityId,
                    OrganizationInvolvementDescription = "Service Call Insurance Company",
                    SourceName = "CAD"
                };

                context.ActivityOrganizations.Add(activityOrganization);
                context.SaveChanges();

                if (accident.PoliceStationName != null && accident.PoliceStationName.Trim().Length > 0)
                {
                    var policeStation = new OrganizationView
                    {
                        SourceName = "CAD",
                        Name       = accident.PoliceStationName,
                    };

                    context.OrganizationViews.Add(policeStation);

                    var policeActivityOrganization = new ActivityOrganization
                    {
                        Organizationid = policeStation.OrganizationId,
                        ActivityId     = newServiceCall.ActivityId,
                        OrganizationInvolvementDescription = "Service Call Police Station",
                        SourceName = "CAD"
                    };

                    context.ActivityOrganizations.Add(policeActivityOrganization);
                }

                if (context.SaveChanges() > 0)
                {
                    insertedRowsCount++;
                    return(true);
                }

                return(false);
            }
            catch (DbEntityValidationException ex)
            {
                Utility.WriteLog(ex);
                corruptedRowsCount++;
                return(false);
            }
            catch (DbUpdateException ex)
            {
                Utility.WriteLog(ex);
                corruptedRowsCount++;
                return(false);
            }
            catch (EntityCommandCompilationException ex)
            {
                Utility.WriteLog(ex);
                corruptedRowsCount++;
                return(false);
            }
            catch (EntityCommandExecutionException ex)
            {
                Utility.WriteLog(ex);
                corruptedRowsCount++;
                return(false);
            }
            catch (Exception ex)
            {
                Utility.WriteLog(ex);
                corruptedRowsCount++;
                return(false);
            }
        }
コード例 #7
0
        /// <summary>修改组织
        /// 修改组织
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <param name="description"></param>
        /// <returns></returns>
        public JsonResult UpdateOrganization(int id, string name, string description)
        {
            OrganizationView organization = this._organizationService.UpdateOrganization(id, name, description);

            return(Json(organization, JsonRequestBehavior.AllowGet));
        }
コード例 #8
0
 /// <summary>
 /// Gets the organization with the specified <paramref name="orgId"/> using the specified <paramref name="view"/>.
 /// </summary>
 /// <param name="orgId">The organization's id.</param>
 /// <param name="view">The view of the organization to get.</param>
 /// <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None"/>.</param>
 /// <returns></returns>
 public Task <Organization> GetOrganizationAsync(string orgId, OrganizationView view, CancellationToken cancellationToken = default) => GetOrganizationAsync(orgId, view.Validate(nameof(view)).GetValue(), cancellationToken);
コード例 #9
0
 /// <summary>
 /// Gets the root organization using the specified <paramref name="view"/>.
 /// </summary>
 /// <param name="view">The view of the organization to get.</param>
 /// <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None"/>.</param>
 /// <returns></returns>
 public Task <Organization> GetRootOrganizationAsync(OrganizationView view, CancellationToken cancellationToken = default) => GetRootOrganizationAsync(view.Validate(nameof(view)).GetValue(), cancellationToken);
コード例 #10
0
        public HttpResponseMessage UpdateOrganization(int id, string name, string description)
        {
            OrganizationView organization = this._organizationService.UpdateOrganization(id, name, description);

            return(ToJson(organization));
        }
コード例 #11
0
        public HttpResponseMessage AddOrganization(int ParentId, string Name, string Description)
        {
            OrganizationView organization = this._organizationService.AddOrganizationChild(ParentId, Name, Description);

            return(ToJson(organization));
        }