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()); }
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))); }
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()); } }
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 })); } }