Exemplo n.º 1
0
        public async Task <IActionResult> ReceiptCode(int Id)
        {
            var user = await userManager.FindByIdAsync(User.FindFirst("Id")?.Value);

            if (user == null)
            {
                return(Unauthorized());
            }
            if (await userManager.IsInRoleAsync(user, "User") && user?.Confirmed == Confirmed.approved && !user.Block)
            {
                var order = _contect.Orders.Include(i => i.User.UserIdentity).SingleOrDefault(i => i.Id == Id && i.UserId == user.Id);
                if (order == null)
                {
                    return(NotFound());
                }
                var ReceiptCode = _contect.ReceiptCode.SingleOrDefault(i => i.OrderId == order.Id);
                if (order.orderStatus == orderStatus.delivery)
                {
                    if (ReceiptCode == null)
                    {
                        ReceiptCode           = new ReceiptCode();
                        ReceiptCode.UserId    = user.Id;
                        ReceiptCode.Code      = new Random().Next(1234, 9999);
                        ReceiptCode.OrderId   = Id;
                        ReceiptCode.ExperDate = DateTime.Now.AddMinutes(10);
                        _contect.ReceiptCode.Add(ReceiptCode);
                    }
                    else
                    {
                        ReceiptCode.UserId    = user.Id;
                        ReceiptCode.Code      = new Random().Next(1234, 9999);
                        ReceiptCode.OrderId   = Id;
                        ReceiptCode.ExperDate = DateTime.Now.AddMinutes(10);
                    }


                    //var conne= _contect.NotificationTokens.Where(i=)

                    _contect.SaveChanges();
                    try
                    {
                        //  string body = $"Hi  \n  the Receipt Code of   Order Number# :{order.Id.ToString()} \n  Receipt Code :  {ReceiptCode.Code.ToString()} \n ExperDate  : { ReceiptCode.ExperDate.ToString()}";
                        //  AlertNotifiction.SendEmail(user.Email, "Receipt Code", _SmtpSettings, "Hi    the Receipt Code of Receipt Code :  " + ReceiptCode.Code.ToString()  );
                        //AlertNotifiction.SendEmail(order.User.UserIdentity.Email, "orderStatus  Receipt", _SmtpSettings, "Hi    the Receipt Code of Receipt Code :  ");
                    }
                    catch (Exception e) { }
                }

                return(Ok(
                           new
                {
                    // ReceiptCode.ID,
                    ReceiptCode.Code,
                    ReceiptCode.OrderId,
                    ReceiptCode.ExperDate,
                }));
            }
            return(Unauthorized("token not User"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Receipt(ReceiptModelView model)
        {
            var order       = new Order();
            var ReceiptCode = new ReceiptCode();
            var user        = await userManager.FindByIdAsync(User.FindFirst("Id")?.Value);

            if (user == null)
            {
                return(Unauthorized());
            }
            if (await userManager.IsInRoleAsync(user, "Sealler") && user?.Confirmed == Confirmed.approved && !user.Block)
            {
                order = _contect.Orders.SingleOrDefault(i => i.Id == model.OrderId);
                if (order == null)
                {
                    return(NotFound());
                }
                ReceiptCode = _contect.ReceiptCode.SingleOrDefault(i => i.OrderId == order.Id && i.UserId == order.UserId && i.Code.ToString() == model.Code && i.ExperDate >= DateTime.Now);
                if (ReceiptCode == null)
                {
                    return(NotFound());
                }
                else
                {
                    ReceiptCode.SeallerId   = user.Id;
                    ReceiptCode.ReceiptDate = DateTime.Now;
                    order.orderStatus       = orderStatus.Receipt;
                    order.ReceiptDate       = ReceiptCode.ReceiptDate;
                    _contect.SaveChanges();
                    var connectionFierbaseId = _contect.NotificationTokens.Where(i => i.UserId == order.UserId || i.UserId == order.SeallerId)
                                               .Select(i => i.connectionFierbaseId).ToList();
                    AlertNotifiction.Notifiction_push(ServerKey, senderId, connectionFierbaseId, "  الطلب استلام الطلب", $"{order.ProductAName} تم استلام الطلب طلب للمنتج ");
                }



                return(Ok(
                           new
                {
                    order.Id,
                    order.ProductName,
                    order.ProductAName,
                    order.Productprice,

                    order.description,

                    // ProductForm = order.Form?.Select(i => new { i.id, i.AKey, i.Key, i.value }).ToList(),
                    order.CodeColor,
                    order.ANameColor,
                    order.NameColor,
                    order.orderStatus,
                    order.Cuantity,
                    order.ProductpriceTotal,
                    order.Date,
                    order.Timespent,
                    order.TimespentEnd,
                    order.UserAddress,
                    order.otherPhoneNo,
                    order.ReceiptDate,
                }));
            }
            else
            {
                return(Unauthorized());
            }
        }