Ejemplo n.º 1
0
        public async Task <IActionResult> SetOrderState([FromBody] List <AgentOrderStateDto> agentOrderStateDtos)
        {
            var orders = await this._context.Orders.Where(c => agentOrderStateDtos.Select(c => c.Id).ToList().Contains(c.Id)).ToListAsync();

            agentOrderStateDtos.ForEach(c =>
            {
                var temp = new ApproveAgentEditOrderRequest()
                {
                    AgentId       = AuthoticateUserId(),
                    IsApprove     = null,
                    NewAmount     = c.Cost,
                    OrderId       = c.Id,
                    OrderPlacedId = c.OrderplacedId,
                };
                this._context.Add(temp);
            });
            orders.ForEach(c =>
            {
                c.AgentRequestStatus = (int)AgentRequestStatusEnum.Pending;
            });
            await this._context.SaveChangesAsync();

            var orderRequestEditStateCount = await this._context.ApproveAgentEditOrderRequests.Where(c => c.IsApprove == null).CountAsync();

            AdminNotification adminNotification = new AdminNotification()
            {
                OrderRequestEditStateCount = orderRequestEditStateCount,
            };
            await _notificationHub.AdminNotifcation(adminNotification);

            return(Ok());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([FromBody] CreatePaymentRequestDto createPaymentRequestDto)
        {
            PaymentRequest paymentRequest = new PaymentRequest()
            {
                PaymentWayId = createPaymentRequestDto.PaymentWayId,
                Note         = createPaymentRequestDto.Note,
                ClientId     = AuthoticateUserId(),
                CreateDate   = createPaymentRequestDto.Date,
                Accept       = null
            };

            this._context.Add(paymentRequest);
            await this._context.SaveChangesAsync();

            var newPaymentRequetsCount = await this._context.PaymentRequests
                                         .Where(c => c.Accept == null).CountAsync();

            var adminNotification = new AdminNotification()
            {
                NewPaymentRequetsCount = newPaymentRequetsCount
            };
            await _notificationHub.AdminNotifcation(adminNotification);

            return(Ok(_mapper.Map <PayemntRquestDto>(paymentRequest)));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Create([FromBody] CreateOrderFromClient createOrderFromClient)
        {
            var dbTransacrion = this._context.Database.BeginTransaction();

            try
            {
                var validate = await this.Validate(createOrderFromClient);

                if (validate.Count != 0)
                {
                    return(Conflict(new { messages = validate }));
                }

                var country = this._context.Countries.Find(createOrderFromClient.CountryId);
                var order   = _mapper.Map <Order>(createOrderFromClient);
                order.ClientId        = AuthoticateUserId();
                order.CreatedBy       = AuthoticateUserName();
                order.DeliveryCost    = country.DeliveryCost;
                order.CreatedBy       = AuthoticateUserName();
                order.MoenyPlacedId   = (int)MoneyPalcedEnum.OutSideCompany;
                order.OrderplacedId   = (int)OrderplacedEnum.Client;
                order.OrderStateId    = (int)OrderStateEnum.Processing;
                order.RecipientPhones = String.Join(',', createOrderFromClient.RecipientPhones);
                order.IsSend          = false;
                order.CurrentCountry  = this._context.Countries.Where(c => c.IsMain == true).FirstOrDefault().Id;
                this._context.Add(order);
                this._context.SaveChanges();
                var orderItem = createOrderFromClient.OrderItem;

                if (orderItem != null)
                {
                    foreach (var item in orderItem)
                    {
                        int orderTypeId;
                        if (item.OrderTypeId == null)
                        {
                            if (item.OrderTypeName == "")
                            {
                                return(Conflict());
                            }
                            var similerOrderType = this._context.OrderTypes.Where(c => c.Name == item.OrderTypeName).FirstOrDefault();
                            if (similerOrderType == null)
                            {
                                var orderType = new OrderType()
                                {
                                    Name = item.OrderTypeName,
                                };
                                this._context.Add(orderType);
                                this._context.SaveChanges();
                                orderTypeId = orderType.Id;
                            }
                            else
                            {
                                orderTypeId = similerOrderType.Id;
                            }
                        }
                        else
                        {
                            orderTypeId = (int)item.OrderTypeId;
                        }
                        this._context.Add(new OrderItem()
                        {
                            OrderTpyeId = orderTypeId,
                            Count       = item.Count,
                            OrderId     = order.Id
                        });
                        this._context.SaveChanges();
                    }
                }
                await dbTransacrion.CommitAsync();

                var newOrdersDontSendCount = await this._context.Orders
                                             .Where(c => c.IsSend == false && c.OrderplacedId == (int)OrderplacedEnum.Client)
                                             .CountAsync();

                AdminNotification adminNotification = new AdminNotification()
                {
                    NewOrdersDontSendCount = newOrdersDontSendCount
                };
                await _notificationHub.AdminNotifcation(adminNotification);

                return(Ok(_mapper.Map <OrderResponseClientDto>(order)));
            }

            catch (Exception ex)
            {
                dbTransacrion.Rollback();
                _logging.WriteExption(ex);
                return(BadRequest());
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Update([FromBody] CUpdateClientDto updateClientDto)
        {
            try
            {
                var client = await this._context.Clients.FindAsync(AuthoticateUserId());

                var clientName     = client.Name;
                var clientUserName = client.UserName;
                var oldPassword    = client.Password;
                client          = _mapper.Map <CUpdateClientDto, Client>(updateClientDto, client);
                client.Name     = clientName;
                client.UserName = clientUserName;

                if (client.Password == "")
                {
                    client.Password = oldPassword;
                }
                this._context.Update(client);
                this._context.Entry(client).Collection(c => c.ClientPhones).Load();
                client.ClientPhones.Clear();
                if (updateClientDto.Phones != null)
                {
                    foreach (var item in updateClientDto.Phones)
                    {
                        var clientPhone = new ClientPhone()
                        {
                            ClientId = AuthoticateUserId(),
                            Phone    = item,
                        };
                        this._context.Add(clientPhone);
                    }
                }

                bool isEditRequest = clientName != updateClientDto.Name || clientUserName != updateClientDto.UserName;
                if (isEditRequest)
                {
                    EditRequest editRequest = new EditRequest();
                    if (clientName != updateClientDto.Name)
                    {
                        editRequest.OldName = clientName;
                        editRequest.NewName = updateClientDto.Name;
                    }
                    if (clientUserName != updateClientDto.UserName)
                    {
                        editRequest.OldUserName = clientUserName;
                        editRequest.NewUserName = updateClientDto.UserName;
                    }
                    editRequest.Accept   = null;
                    editRequest.ClientId = AuthoticateUserId();
                    editRequest.UserId   = null;
                    this._context.Add(editRequest);
                }
                await this._context.SaveChangesAsync();

                if (isEditRequest)
                {
                    var newEditRquests = await this._context.EditRequests.Where(c => c.Accept == null).CountAsync();

                    var adminNotification = new AdminNotification()
                    {
                        NewEditRquests = newEditRquests,
                    };
                    await _notificationHub.AdminNotifcation(adminNotification);
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = "خطأ بالتعديل ", Ex = ex.Message }));
            }
        }