Esempio n. 1
0
        public async Task <IActionResult> Merge([FromBody] ConsolidateMergeRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var mergeResponse = await consolidateService.MergeLoads(request, userService.getUserName(User.Claims));

            if (!mergeResponse.isMerged)
            {
                return(BadRequest(mergeResponse));
            }

            return(Ok(mergeResponse));
        }
        public async Task <ConsolidateMergeResponse> MergeLoads(ConsolidateMergeRequest request, string userName)
        {
            var mergeResponse = new ConsolidateMergeResponse();

            if (!userService.isUserMemberOfGroup(_config.UserServiceConfig.UserRoutes[2].group, userName))
            {
                mergeResponse.isMerged = false;
                mergeResponse.message.Add(String.Format(_config.UserServiceConfig.accountMessages[2], userName, _config.UserServiceConfig.UserRoutes[2].header));
            }

            if (mergeResponse.isMerged)
            {
                //load1,load2
                var loads_commaS = String.Join(_config.ConsolidateConfig.mergeHelper[0], request.consolidatedLoads);
                //load1','load2
                var loads_quote_comma = String.Join(_config.ConsolidateConfig.mergeHelper[1], request.consolidatedLoads);
                // Run main SP
                await consolidateRepository.runConsolidateMergeMain(String.Format(_config.ConsolidateConfig.mainStoredProcedures[1], loads_commaS, userName));

                // Check in ErrorLogTable
                var consolidateErrorLogTables = await consolidateRepository.runConsolidateErrorTb(String.Format(_config.ConsolidateConfig.errorLogTables[1], loads_commaS, loads_quote_comma));

                // Check in SuccessLogTable
                if (consolidateErrorLogTables.Count == 0)
                {
                    var consolidateSuccessLogTables = await consolidateRepository.runConsolidateSuccessTb(String.Format(_config.ConsolidateConfig.successLogTables[1], loads_quote_comma));

                    if (consolidateSuccessLogTables.Count > 0)
                    {
                        mergeResponse.isMerged = true;
                        mergeResponse.message.Add(String.Format(_config.ConsolidateConfig.successLogTableMessages[0], loads_commaS, consolidateSuccessLogTables[0].dtstamp, consolidateSuccessLogTables[0].TMWMove));
                    }
                    else
                    {
                        mergeResponse.isMerged = false;
                        mergeResponse.message.Add(String.Format(_config.ConsolidateConfig.successLogTableMessages[1], loads_commaS));
                    }
                }
                else
                {
                    mergeResponse.isMerged = false;
                    mergeResponse.message.Add(consolidateErrorLogTables[0].ErrorString);
                }
            }

            return(mergeResponse);
        }