示例#1
0
        public async Task SendEmail(EbatchSheet ebatchSheet)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, _configuration["EmailTriggerURL"]);

            request.Headers.Add("Accept", "application/json");

            var    req     = _httpContext.HttpContext.Request;
            string itemUrl = string.Format("{0}://{1}/form?id={2}", req.Scheme, req.Host, ebatchSheet.Id);

            EbatchSheetUpdateStateMailContent emailContent = new EbatchSheetUpdateStateMailContent
            {
                Body      = itemUrl,
                NextState = ebatchSheet.CurrentState.Value
            };

            string content = JsonConvert.SerializeObject(emailContent);

            request.Content = new StringContent(content, Encoding.UTF8, "application/json");

            var client   = _clientFactory.CreateClient();
            var response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                _logger.LogError("UPDATE_EBATCHSHEET - SEND EMAIL FAILED {@request}", request);
            }
            else
            {
                _logger.LogInformation("UPDATE_EBATCHSHEET: {ebatchId} - {@BODY} successfully to {newStatus} ", ebatchSheet.Id, request, ebatchSheet.CurrentState);
            }
        }
        /*public static EbatchSheet ToDomainEntity(this CreateEbatchSheetCommand request)
         * {
         *  var ebatchSheet = new EbatchSheet()
         *  {
         *      WorkOrderId = Guid.NewGuid().ToString(),
         *      Owner = request.Owner,
         *      WorkOrderNumber = request.WorkOrderNumber,
         *      WorkOrderDesciption = request.WorkOrderDesciption,
         *      WorkOrderPart = request.WorkOrderPart,
         *      WorkOrderArticle = request.WorkOrderArticle,
         *      ManufacturingDate = request.ManufacturingDate,
         *      ManufacturingComment = request.ManufacturingComment,
         *      GridBulkItem = request.GridBulkItem
         *  };
         *  return ebatchSheet;
         * }*/

        public static EbatchSheetVm ToViewEntity(this EbatchSheet request)
        {
            var ebatchVm = new EbatchSheetVm()
            {
                Id                                   = request.Id,
                CurrentState                         = request.CurrentState,
                NextState                            = request.GetNextState(request.CurrentState),
                WorkOrderId                          = request.WorkOrderId,
                Owner                                = request.Owner,
                WorkOrderNumber                      = request.WorkOrderNumber,
                WorkOrderPartDesciption              = request.WorkOrderPartDesciption,
                WorkOrderPart                        = request.WorkOrderPart,
                WorkOrderArticle                     = request.WorkOrderArticle,
                ManufacturingDate                    = request.ManufacturingDate,
                BatchStartDate                       = request.BatchStartDate,
                EndDateComment                       = request.EndDateComment,
                ExpiryDate                           = request.ExpiryDate,
                ModifiedDate                         = request.ModifiedDate,
                CreatedDate                          = request.CreatedDate,
                PackDate                             = request.PackageDate,
                PackageSize                          = request.PackageSize,
                BestBeforeComment                    = request.BestBeforeComment,
                GroupBComment                        = request.GroupBComment,
                Panel9Signature                      = request.Panel9Signature,
                Panel9Signature2                     = request.Panel9Signature2,
                QCSample                             = request.QCSample,
                QuantityRequired                     = request.QuantityRequired,
                ReconciliationCompletedbySignature   = request.ReconciliationCompletedbySignature,
                ManufacturingComment                 = request.ManufacturingComment,
                IssuedDate                           = request.IssuedDate,
                IssuedBy                             = request.IssuedBy,
                EbatchVersion                        = request.EbatchVersion,
                OuterShipperLabel                    = request.OuterShipperLabel,
                PalletLabel                          = request.PalletLabel,
                ChangeOfLabelNotice                  = request.ChangeOfLabelNotice,
                PalletInformation                    = request.PalletInformation,
                CleanCompletedSignature              = request.CleanCompletedSignature,
                GridBulkItem                         = request.GridBulkItem,
                GridPrePrint                         = request.GridPrePrint,
                GridPackaging                        = request.GridPackaging,
                DataGridGroupA                       = request.DataGridGroupA,
                FinishedGoodUnit_NumberOfUnits       = request.FinishedGoodUnit_NumberOfUnits,
                FinishedGoodUnit_NumberOfUnitsInPart = request.FinishedGoodUnit_NumberOfUnitsInPart,
                FinishedGoodUnit_TotalNumberOfUnits  = request.FinishedGoodUnit_TotalNumberOfUnits,
                SecondUKOnly_NumberOfUnits           = request.SecondUKOnly_NumberOfUnits,
                SecondUKOnly_NumberOfUnitsInPart     = request.SecondUKOnly_NumberOfUnitsInPart,
                SecondUKOnly_TotalNumberOfUnits      = request.SecondUKOnly_TotalNumberOfUnits,
                RoomCoordinatorSignature             = request.RoomCoordinatorSignature,
                GMPReconciliatorSignature            = request.GMPReconciliatorSignature,
                ReconciliationComment                = request.ReconciliationComment,
                CommentsSignOff                      = request.CommentsSignOff
            };

            return(ebatchVm);
        }
        public async Task <string> Handle(CreateEbatchSheetCommand request, CancellationToken cancellationToken)
        {
            _logger.LogInformation("CREATE_NEW_EBATCHSHEET : {@request} ", request);

            var newEbatch = new EbatchSheet();

            newEbatch.Create(request);

            await _cosmosStore.AddAsync(newEbatch);

            await _ebatchSheetEmailSender.SendEmail(newEbatch);

            return(newEbatch.Id);
        }