public async Task <ICommandResult> Handle(CartAddCommand mesage)
        {
            try
            {
                bool isLockSuccess = await _cartService.CreatingCart(mesage.ClientId);

                if (isLockSuccess)
                {
                    var shard = await _shardingService.GetCurrentWriteShardByRoundRobin(ShardGroup);

                    Cart           cart                   = new Cart(mesage, shard.Id, mesage.Version);
                    CartItem       shoppingCartItem       = new CartItem(mesage.CartItem);
                    CartItemDetail shoppingCartItemDetail = new CartItemDetail(mesage.CartItemDetail);
                    var            newCartItems           = cart.Add(shoppingCartItem, shoppingCartItemDetail, mesage.CartItem.Quantity,
                                                                     out var newCartItemDetail);
                    await _cartService.Save(shard.ConnectionString, cart, newCartItems, newCartItemDetail);

                    _eventSender.Add(cart.Events);
                    await _eventSender.Notify();

                    ICommandResult result = new CommandResult()
                    {
                        Message  = "",
                        ObjectId = cart.Id,
                        Status   = CommandResult.StatusEnum.Sucess,
                    };
                    return(result);
                }
                else
                {
                    throw new MessageException(ResourceKey.Cart_IsCreating);
                }
            }
            catch (MessageException e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message      = e.Message,
                    Status       = CommandResult.StatusEnum.Fail,
                    ResourceName = e.ResourceName
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
            finally
            {
                await _cartService.CreatedCart(mesage.ClientId);
            }
        }
        public async Task <ICommandResult> Handle(GiftCodeCampaignAddCommand mesage)
        {
            try
            {
                var shard = await _shardingService.GetCurrentWriteShardByRoundRobin(ShardGroup);

                GiftCodeCampaign campaign = new GiftCodeCampaign();
                campaign.Add(mesage, shard.Id);
                int rowCount = await _giftcodeService.Add(shard.ConnectionString, campaign);

                if (rowCount <= 0)
                {
                    throw new MessageException(ResourceKey.GiftCodeCampaign_AddFail);
                }
                await _eventSender.Notify();

                ICommandResult result = new CommandResult()
                {
                    Message  = "",
                    ObjectId = string.Empty,
                    Status   = CommandResult.StatusEnum.Sucess
                };
                return(result);
            }
            catch (MessageException e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message      = e.Message,
                    Status       = CommandResult.StatusEnum.Fail,
                    ResourceName = e.ResourceName
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
        }
Пример #3
0
        public async Task <ICommandResult> Handle(TemplateAddCommand message)
        {
            try
            {
                long systemIdentity = await _commonService.GetNextId(typeof(Template));

                message.Code = Common.Common.GenerateCodeFromId(systemIdentity, 3);
                Template template = new Template();
                template.Add(message);
                await _templateService.Add(template);

                await _eventSender.Notify(template.Events);

                ICommandResult result = new CommandResult()
                {
                    Message  = "",
                    ObjectId = template.Id,
                    Status   = CommandResult.StatusEnum.Sucess
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = message;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
        }
        public async Task <ICommandResult> Handle(BannerAddCommand mesage)
        {
            try
            {
                SystemDomains.Banner.Banner banner = new SystemDomains.Banner.Banner();
                banner.Add(mesage);
                await _bannerService.AddBanner(banner);

                await _eventSender.Notify(banner.Events);

                ICommandResult result = new CommandResult()
                {
                    Message  = "",
                    ObjectId = banner.Id,
                    Status   = CommandResult.StatusEnum.Sucess
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
        }
        public async Task <ICommandResult> Handle(ActionDefineAddCommand mesage)
        {
            try
            {
                ActionDefine actionDefine = new ActionDefine();
                actionDefine.Init(mesage);

                await _roleService.AddToDb(actionDefine);

                await _eventSender.Notify(actionDefine.Events);

                ICommandResult result = new CommandResult
                {
                    Message  = "",
                    ObjectId = actionDefine.Id,
                    Status   = CommandResult.StatusEnum.Sucess
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
        }
Пример #6
0
        public async Task <ICommandResult> Handle(ProductAttributeValueCommand mesage)
        {
            try
            {
                var item = new ProductAttributeValue();
                item.Init(mesage);

                if (!string.IsNullOrEmpty(mesage.AttributeValueId))
                {
                    await _productAttributeValueService.UpdateToDb(item);

                    await _eventSender.Notify(item.Events);
                }
                else
                {
                    await _productAttributeValueService.AddToDb(item);

                    await _eventSender.Notify(item.Events);
                }

                var result = new CommandResult
                {
                    Message  = "",
                    ObjectId = item.Id,
                    Status   = CommandResult.StatusEnum.Sucess
                };
                return(result);
            }
            catch (Exception e)
            {
                e.Data["Param"] = mesage;
                ICommandResult result = new CommandResult()
                {
                    Message = e.Message,
                    Status  = CommandResult.StatusEnum.Fail
                };
                return(result);
            }
        }