コード例 #1
0
        public async Task <IHttpActionResult> Replace(int id, BrakeConfigInputModel model)
        {
            BrakeConfig brakeConfig = new BrakeConfig()
            {
                Id = model.Id,
                FrontBrakeTypeId      = model.FrontBrakeTypeId,
                RearBrakeTypeId       = model.RearBrakeTypeId,
                BrakeABSId            = model.BrakeABSId,
                BrakeSystemId         = model.BrakeSystemId,
                VehicleToBrakeConfigs = model.VehicleToBrakeConfigs.Select(item => new VehicleToBrakeConfig
                {
                    BrakeConfigId = item.BrakeConfigId,
                    Id            = item.Id,
                    VehicleId     = item.VehicleId
                }).ToList(),
            };

            CommentsStagingModel comment = new CommentsStagingModel {
                Comment = model.Comment
            };
            var attachments     = SetUpAttachmentsModels(model.Attachments);
            var changeRequestId = await _brakeConfigApplicationService.ReplaceAsync(brakeConfig, id, CurrentUser.Email, comment, attachments);

            return(Ok(changeRequestId));
        }
コード例 #2
0
        public async Task <IHttpActionResult> Post(int id, BrakeConfigInputModel model)
        {
            BrakeConfig brakeConfig = new BrakeConfig()
            {
                Id = model.Id,
                VehicleToBrakeConfigCount = model.VehicleToBrakeConfigCount
            };
            CommentsStagingModel comment = new CommentsStagingModel()
            {
                Comment = model.Comment,
            };
            var attachments     = SetUpAttachmentsModels(model.Attachments);
            var changeRequestId = await _brakeConfigApplicationService.DeleteAsync(brakeConfig, id, CurrentUser.Email, comment, attachments);

            return(Ok(changeRequestId));
        }
コード例 #3
0
        private async Task UpdateVehicleToBrakeConfigDocuments(BrakeConfig updatedBrakeConfig)
        {
            bool isEndReached = false;
            int  pageNumber   = 1;

            do
            {
                var vehicleToBrakeConfigSearchResult =
                    await
                    _vehicletoBrakeConfigSearchService.SearchAsync(null,
                                                                   $"brakeConfigId eq {updatedBrakeConfig.Id}", new SearchOptions()
                {
                    RecordCount = 1000, PageNumber = pageNumber
                });

                var existingVehicleToBrakeConfigDocuments = vehicleToBrakeConfigSearchResult.Documents;

                if (existingVehicleToBrakeConfigDocuments != null && existingVehicleToBrakeConfigDocuments.Any())
                {
                    foreach (var existingVehicleToBrakeConfigDocument in existingVehicleToBrakeConfigDocuments)
                    {
                        existingVehicleToBrakeConfigDocument.BrakeConfigChangeRequestId = -1;
                        existingVehicleToBrakeConfigDocument.FrontBrakeTypeId           = updatedBrakeConfig.FrontBrakeTypeId;
                        existingVehicleToBrakeConfigDocument.FrontBrakeTypeName         = updatedBrakeConfig.FrontBrakeType.Name;
                        existingVehicleToBrakeConfigDocument.RearBrakeTypeId            = updatedBrakeConfig.RearBrakeTypeId;
                        existingVehicleToBrakeConfigDocument.RearBrakeTypeName          = updatedBrakeConfig.RearBrakeType.Name;
                        existingVehicleToBrakeConfigDocument.BrakeABSId      = updatedBrakeConfig.BrakeABSId;
                        existingVehicleToBrakeConfigDocument.BrakeABSName    = updatedBrakeConfig.BrakeABS.Name;
                        existingVehicleToBrakeConfigDocument.BrakeSystemId   = updatedBrakeConfig.BrakeSystemId;
                        existingVehicleToBrakeConfigDocument.BrakeSystemName = updatedBrakeConfig.BrakeSystem.Name;
                    }

                    await
                    this._vehicleToBrakeConfigIndexingService.UploadDocumentsAsync(existingVehicleToBrakeConfigDocuments.ToList());

                    pageNumber++;
                }
                else
                {
                    isEndReached = true;
                }
            } while (!isEndReached);
        }
コード例 #4
0
        public async Task <IHttpActionResult> Post(BrakeConfigInputModel model)
        {
            BrakeConfig brakeConfig = new BrakeConfig()
            {
                Id = model.Id,
                FrontBrakeTypeId = model.FrontBrakeTypeId,
                RearBrakeTypeId  = model.RearBrakeTypeId,
                BrakeABSId       = model.BrakeABSId,
                BrakeSystemId    = model.BrakeSystemId
            };
            CommentsStagingModel comment = new CommentsStagingModel()
            {
                Comment = model.Comment
            };
            var attachments     = SetUpAttachmentsModels(model.Attachments);
            var changeRequestId = await _brakeConfigApplicationService.AddAsync(brakeConfig, CurrentUser.Email, comment, attachments);

            return(Ok(changeRequestId));
        }
コード例 #5
0
        public override async Task <long> SubmitAddChangeRequestAsync(VehicleToBrakeConfig entity, string requestedBy,
                                                                      List <ChangeRequestItemStaging> changeRequestItemStagings = null, CommentsStagingModel comment = null,
                                                                      List <AttachmentsModel> attachmentsStagingModels          = null, string changeContent = null)
        {
            if (entity.VehicleId.Equals(default(int)) ||
                entity.BrakeConfigId.Equals(default(int)))
            {
                throw new ArgumentException(nameof(entity));
            }

            changeRequestItemStagings = changeRequestItemStagings ?? new List <ChangeRequestItemStaging>();
            // Validation check for insert of new vehicle to brake config

            StringBuilder validationErrorMessage = new StringBuilder();

            await ValidateVehicleToBrakeConfigHasNoChangeReqeuest(entity);
            await ValidateVehicleToBrakeConfigLookUpHasNoChangeRequest(entity);

            changeRequestItemStagings.Add(new ChangeRequestItemStaging()
            {
                ChangeType      = ChangeType.Add,
                EntityId        = entity.Id.ToString(),
                CreatedDateTime = DateTime.UtcNow,
                Entity          = typeof(VehicleToBrakeConfig).Name,
                Payload         = base.Serializer.Serialize(entity)
            });

            var vehicleRepositoryService     = Repositories.GetRepositoryService <Vehicle>() as IVcdbSqlServerEfRepositoryService <Vehicle>;
            var brakeConfigRepositoryService = Repositories.GetRepositoryService <BrakeConfig>() as IVcdbSqlServerEfRepositoryService <BrakeConfig>;

            Vehicle     vehicle     = null;
            BrakeConfig brakeConfig = null;

            if (vehicleRepositoryService != null && brakeConfigRepositoryService != null)
            {
                var vehicles = await vehicleRepositoryService.GetAsync(m => m.Id == entity.VehicleId && m.DeleteDate == null, 1);

                if (vehicles != null && vehicles.Any())
                {
                    vehicle = vehicles.First();
                }

                var brakeConfigs = await brakeConfigRepositoryService.GetAsync(m => m.Id == entity.BrakeConfigId && m.DeleteDate == null, 1);

                if (brakeConfigs != null && brakeConfigs.Any())
                {
                    brakeConfig = brakeConfigs.First();
                }
            }

            changeContent = string.Format("{0} / {1} / {2} / {3} / {4} => \n{5} / {6} / {7} / {8}"
                                          , vehicle.BaseVehicle.YearId
                                          , vehicle.BaseVehicle.Make.Name
                                          , vehicle.BaseVehicle.Model.Name
                                          , vehicle.SubModel.Name
                                          , vehicle.Region.Name
                                          , brakeConfig.FrontBrakeType.Name
                                          , brakeConfig.RearBrakeType.Name
                                          , brakeConfig.BrakeABS.Name
                                          , brakeConfig.BrakeSystem.Name);

            // NOTE: change-request-comments-staging perfomed on base

            return(await base.SubmitAddChangeRequestAsync(entity, requestedBy, changeRequestItemStagings, comment, attachmentsStagingModels, changeContent));
        }