Exemplo n.º 1
0
        public CreateOrderResponseDTO Order(MobileOrderDTO ord)
        {
            var id = SaveAndGetId(ord);

            if (WebOperationContext.Current?.OutgoingResponse != null)
            {
                WebOperationContext.Current.OutgoingResponse.StatusCode = id > 0 ? HttpStatusCode.OK : HttpStatusCode.InternalServerError;
            }
            return(new CreateOrderResponseDTO(id, ord.UuidRaw));
        }
Exemplo n.º 2
0
        int SaveAndGetId(MobileOrderDTO mobileOrder)
        {
            int resId = -1;

            if (mobileOrder == null)
            {
                logger.Error("[MB]Отсутсвует заказ");
                return(resId);
            }

            if (mobileOrder.OrderId > 0)
            {
                //реализовать для изменения заказа
                logger.Error(string.Format("[MB]Запрос на измение мобильного заказа '{0}'. Пока не реализованно.", mobileOrder.OrderId));
                return(resId);
            }

            if (!mobileOrder.IsOrderSumValid())
            {
                logger.Error(string.Format("[MB]Неправильная сумма заказа: \"{0}\"", mobileOrder.OrderSum));
                return(resId);
            }

            if (!mobileOrder.IsUuidValid())
            {
                logger.Error(string.Format("[MB]Неправильный Uuid: \"{0}\"", mobileOrder.UuidRaw));
                return(resId);
            }

            if (SaveAndGetIdTestGap != null)
            {
                return(SaveAndGetIdTestGap(mobileOrder));
            }

            using (var uow = UnitOfWorkFactory.CreateWithNewRoot <OrderIdProviderForMobileApp>($"[MB]Регистрация заказа для '{mobileOrder.GetUuid()}' на сумму '{mobileOrder.OrderSum}'")) {
                uow.Root.Uuid     = mobileOrder.GetUuid();
                uow.Root.OrderSum = mobileOrder.OrderSum;
                try {
                    uow.Save();
                    resId = uow.Root.Id;
                }
                catch (Exception ex) {
                    logger.Error(string.Format("[MB]Ошибка при сохранении: {0}", ex.Message));
                    throw ex;
                }
            }
            return(resId);
        }