public async Task  AddTransactionPriority_ForFacilityId_Positive_Test()
        {
            //Arrange
            var objTransactionPriorityPost = new TransactionPriorityPost()
            {
                PriorityCode = "TPCode", PriorityName = "TPDescription", ForManualPickFlag = true, ForManualRestockFlag = true, UseInterfaceMedNameFlag = true, ADUFlag = true, LegendForeColor = "ForeColor", LegendBackColor = "backColor", ActiveFlag = true
            };
            Dictionary <string, string> headers = new Dictionary <string, string>();
            List <SiteConfiguration.API.TransactionPriority.Models.TransactionPriority> listTransactionPriority = new List <SiteConfiguration.API.TransactionPriority.Models.TransactionPriority>()
            {
            };

            SiteConfiguration.API.TransactionPriority.Models.TransactionPriority objTransactionPriority = new SiteConfiguration.API.TransactionPriority.Models.TransactionPriority()
            {
                PriorityCode = "TPCodeOld", PriorityOrder = 1
            };
            listTransactionPriority.Add(objTransactionPriority);
            _transactionPriorityRepository.Setup(x => x.GetAll()).Returns(listTransactionPriority);
            _transactionPriorityRepository.Setup(x => x.AddAsync(It.IsAny <SiteConfiguration.API.TransactionPriority.Models.TransactionPriority>())).Returns(Task.CompletedTask);

            TransactionPriorityManager objTransactionPriorityManager = new  TransactionPriorityManager(_transactionPriorityRepository.Object, _executionContextAccessor
                                                                                                       , _unitOfWork.Object, _logger.Object, _transactionPrioritySmartSortRepository.Object, _smartSortRepository.Object, _eventbus.Object
                                                                                                       , _option.Object, _mapper.Object);

            //Act
            var response = await objTransactionPriorityManager.AddTransactionPriority(objTransactionPriorityPost, new Guid("c33e0be3-ef34-4a69-9f48-3a19de0dc649"), headers);


            Assert.Equal(response.IsSuccesss, true);
        }
示例#2
0
        public async Task <BusinessResponse> AddTransactionPriority(TransactionPriorityPost transactionPriorityPost, Guid facilityID, Dictionary <string, string> headers)
        {
            Models.TransactionPriority objTransactionPriority = new Models.TransactionPriority();

            bool?codeExist = _transactionPriorityRepository.GetAll().ToList()?.Any(x => x.PriorityCode.Trim().ToLower() == transactionPriorityPost.PriorityCode.Trim().ToLower());

            if (codeExist != null && codeExist == true)
            {
                return(new BusinessResponse()
                {
                    IsSuccesss = false, Message = transactionPriorityPost.PriorityCode + " code already exist."
                });
            }

            var newID = Utility.GetNewGuid();

            objTransactionPriority.Id                      = newID;
            objTransactionPriority.TenantKey               = Guid.Parse(_executionContextAccessor.Current.Tenant.TenantKey);
            objTransactionPriority.FacilityKey             = facilityID;
            objTransactionPriority.PrintLabelKey           = Guid.Parse("5c43149d-7c13-49f5-a19d-c0c4f4e58431");
            objTransactionPriority.PriorityCode            = transactionPriorityPost.PriorityCode;
            objTransactionPriority.PriorityName            = transactionPriorityPost.PriorityName;
            objTransactionPriority.PriorityOrder           = 1;
            objTransactionPriority.LegendBackColor         = transactionPriorityPost.LegendForeColor;
            objTransactionPriority.LegendForeColor         = transactionPriorityPost.LegendBackColor;
            objTransactionPriority.MaxOnHoldLength         = 0;
            objTransactionPriority.ForManualPickFlag       = transactionPriorityPost.ForManualPickFlag;
            objTransactionPriority.ForManualRestockFlag    = transactionPriorityPost.ForManualRestockFlag;
            objTransactionPriority.ADUFlag                 = transactionPriorityPost.ADUFlag;
            objTransactionPriority.AutoReceiveFlag         = false;
            objTransactionPriority.ActiveFlag              = transactionPriorityPost.ActiveFlag;
            objTransactionPriority.SystemFlag              = true;
            objTransactionPriority.UseInterfaceMedNameFlag = transactionPriorityPost.UseInterfaceMedNameFlag;
            objTransactionPriority.CreatedByActorKey       = Utility.GetNewGuid();
            objTransactionPriority.LastModifiedByActorKey  = Utility.GetNewGuid();
            objTransactionPriority.CreatedDateTime         = DateTimeOffset.Now;
            objTransactionPriority.LastModifiedUTCDateTime = DateTime.UtcNow;

            var maxOrder = 1;

            if (_transactionPriorityRepository.GetAll()?.ToList()?.Count > 0)
            {
                maxOrder = _transactionPriorityRepository.GetAll().Select(i => i.PriorityOrder).Max() + 1;
            }
            objTransactionPriority.PriorityOrder = maxOrder;

            await _transactionPriorityRepository.AddAsync(objTransactionPriority);

            _unitOfWork.CommitChanges();
            SendEvent(GetTransactionPriorityById(newID.ToString()), "Add", headers);
            return(new BusinessResponse()
            {
                IsSuccesss = true, Message = objTransactionPriority.Id.ToString()
            });
        }
示例#3
0
        public async Task <ActionResult <TransactionPriorityPost> > PostTransactionPriority([FromBody] TransactionPriorityPost transactionPriorityPost)
        {
            Models.TransactionPriority objTransactionPriority = new Models.TransactionPriority();
            try
            {
                var validationResult = _entityValidator.Validate(transactionPriorityPost);
                if (!validationResult.IsValid)
                {
                    StringBuilder validationMessages = new StringBuilder();
                    foreach (var error in validationResult.Errors)
                    {
                        validationMessages.Append(error + " ");
                    }
                    ErrorMessage objErrorMessage = new ErrorMessage()
                    {
                        ErrorCode = 400, ErrorDescription = validationMessages.ToString()
                    };
                    _logger.LogInformation(validationMessages.ToString());
                    return(BadRequest(new ErrorResponse(validationMessages.ToString(), (int)HttpStatusCode.BadRequest, ResponsePayloadType.BusinessException)));
                }
                var headers     = Request.Headers.ToDictionary <KeyValuePair <string, StringValues>, string, string>(item => item.Key, item => item.Value);
                var facilityKey = RouteData.Values["facilitykey"].ToString();
                BusinessResponse objBusinessResponse = await _manager.AddTransactionPriority(transactionPriorityPost, Utility.ParseStringToGuid(facilityKey), headers);

                if (objBusinessResponse.IsSuccesss)
                {
                    return(CreatedAtAction(nameof(GetTransactionPriority), new { tranPriorityKey = objBusinessResponse.Message }, transactionPriorityPost));
                }
                else
                {
                    _logger.LogInformation(objBusinessResponse.Message);
                    return(BadRequest(new ErrorResponse(objBusinessResponse.Message, (int)HttpStatusCode.BadRequest, ResponsePayloadType.BusinessException)));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500));
            }
        }