Ejemplo n.º 1
0
        public async Task <IActionResult> PutUserOffer([FromRoute] int id, [FromBody] UserOffer userOffer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != userOffer.Id)
            {
                return(BadRequest());
            }

            _context.Entry(userOffer).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserOfferExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> PostUserOffer(string description, double price, int bookId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = await _signInManager.UserManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Unauthorized());
            }

            var model = new UserOffer()
            {
                BookId    = bookId,
                UserEmail = user.Email,
                Price     = new Price()
                {
                    PriceType = PriceType.Paid,
                    Value     = price
                },
                Description = description
            };

            _context.UserOffers.Add(model);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUserOffer", new { id = model.Id }, model));
        }
Ejemplo n.º 3
0
        public ActionResult Delete([FromBody] UserOffer uoffer)
        {
            Offer toDelete = context.Offers.Where(x => x.UserId == uoffer.UserId && x.Subject == uoffer.Subject && x.TeacherId == uoffer.TeacherId).First();

            context.Offers.Remove(toDelete);
            context.SaveChanges();
            return(Ok());
        }
Ejemplo n.º 4
0
            public async Task <SendOfferDTO> Handle(Command request, CancellationToken cancellationToken)
            {
                var sender = await dataContext.Users.FirstOrDefaultAsync(x => x.Id == currentUser.UserId);

                if (sender is null)
                {
                    throw new HttpContextException(HttpStatusCode.NotFound, new { User = "******" });
                }

                var receiver = await dataContext.UserAdvertise.Where(x => x.Advertise.UniqueId == request.AdvertiseId)
                               .Select(x => x.AppUser)
                               .FirstOrDefaultAsync();

                if (receiver.Id == sender.Id)
                {
                    throw new HttpContextException(HttpStatusCode.Forbidden, new { User = "******" });
                }

                //var lastTime = await dataContext.UserOffers.OrderByDescending(x=>x.SentAt)
                //    .Where(x => x.SenderId == sender.Id && x.ReceiverId==receiver.Id).Select(x => x.SentAt)
                //    .FirstOrDefaultAsync();

                //if((DateTime.UtcNow - lastTime).TotalDays < 1)
                //{
                //    throw new HttpContextException(HttpStatusCode.Forbidden, new { User = "******" });
                //}

                var userOffer = new UserOffer
                {
                    Sender   = sender,
                    Receiver = receiver,
                    SentAt   = DateTime.UtcNow,
                    Message  = request.Title,
                    Title    = request.Message
                };
                await dataContext.UserOffers.AddAsync(userOffer);

                var success = await dataContext.SaveChangesAsync() > 0;

                if (success)
                {
                    return(new SendOfferDTO {
                        AdvertiseId = request.AdvertiseId,
                        SenderName = $"{userOffer.Sender.FirstName} {userOffer.Sender.LastName}",
                        Title = userOffer.Title,
                        Message = userOffer.Message
                    });
                }
                else
                {
                    throw new Exception("ERROR WHILE SENDING OFFER");
                }
            }
Ejemplo n.º 5
0
        public async Task <Guid> AddUserOfferAsync(UserOffer userOffer)
        {
            await using var mnpContext = _contextFactory.Create();

            var authorId = await _userService.GetCurrentUserIdAsync();

            userOffer.AuthorId     = authorId;
            userOffer.IsActive     = true;
            userOffer.CreationDate = DateTime.Now;

            await mnpContext.AddAsync(userOffer);

            await mnpContext.SaveChangesAsync();

            return(userOffer.Id);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> AddOfferToCartForUser(int userId, OfferForCartDto offerForCartDto)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            List <Offer> offersFromUser = await _repo.GetOffersCart(userId);

            if (!offersFromUser.Exists(off => off.Id == offerForCartDto.OfferId))
            {
                UserOffer userOffer = new UserOffer
                {
                    Amount  = offerForCartDto.Amount,
                    UserId  = userId,
                    OfferId = offerForCartDto.OfferId
                };

                _repo.Add(userOffer);
            }
            else
            {
                List <UserOffer> list = await _repo.GetUserOffersCart(userId);

                var userOffer = list.Find(uo => uo.OfferId == offerForCartDto.OfferId);
                userOffer.Amount = offerForCartDto.Amount;
                _repo.Update(userOffer);
            }

            if (await _repo.SaveAllAsync())
            {
                List <UserOffer> userOffers = await _repo.GetUserOffersCart(userId);

                List <OfferForCartDto> offerForCartDtos;

                offerForCartDtos = Utils.GetOfferCartDtoList(userOffers, _mapper);
                return(Ok(offerForCartDtos));
            }

            return(BadRequest("It wasn't possible adding offer to the cart."));
        }
Ejemplo n.º 7
0
        public async Task <Guid> UpdateUserOfferAsync(UserOffer userOffer)
        {
            await using var mnpContext = _contextFactory.Create();

            var oldUserOffer = await mnpContext.UserOffers.AsNoTracking().FindByIdAsync(userOffer.Id);

            if (oldUserOffer == null)
            {
                throw new NotFoundException($"Offer with {userOffer.Id} not found");
            }

            userOffer.AuthorId     = oldUserOffer.AuthorId;
            userOffer.IsActive     = oldUserOffer.IsActive;
            userOffer.CreationDate = oldUserOffer.CreationDate;

            var offerGames = userOffer.UserOfferGames;
            var periods    = userOffer.Periods;

            userOffer.UserOfferGames = null;
            userOffer.Periods        = null;
            mnpContext.Update(userOffer);

            var oldOfferGames = mnpContext.UserOfferGames
                                .Where(lg => lg.UserOfferId == userOffer.Id);

            mnpContext.RemoveRange(oldOfferGames);
            await mnpContext.AddRangeAsync(offerGames);

            var oldPeriods = mnpContext.UserOfferPeriods
                             .Where(lg => lg.UserOfferId == userOffer.Id);

            mnpContext.RemoveRange(oldPeriods);
            await mnpContext.AddRangeAsync(periods);

            await mnpContext.SaveChangesAsync();

            return(userOffer.Id);
        }
Ejemplo n.º 8
0
 public IActionResult AddNewOffer([FromBody] UserOffer offer)
 {
     try
     {
         if (offer != null)
         {
             var newoffer = new UserOffer
             {
                 Offer     = offer.Offer,
                 productId = offer.productId,
                 userId    = offer.userId + DateTime.Now.ToString("yyyyMMddHHmmss"),
                 endTime   = offer.endTime.Value.AddHours(3)
             };
             _context.Offers.Add(newoffer);
         }
         _context.SaveChanges();
         return(Ok());
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
Ejemplo n.º 9
0
 public BuyOfferResponseDto(Resources price, List <InboxItem> inboxItems, UserOffer userOffer, UserPrize userPrize)
 {
 }
Ejemplo n.º 10
0
 public static void AddPrizeToPaymentIfNeeded(this UserPaymentData paymentData, UserOffer offer, List <InboxItem> inboxItems)
 {
 }
Ejemplo n.º 11
0
        public List <UserOffer> GetPrsonOffers(OfferCriteria offerCriteria, int user_id)
        {
            OfferQuery offerQuery = new OfferQuery(language);

            System.Data.DataTable OfferDT = conn_db.ReadTable(offerQuery.GetPersonOffersWithCondition(offerCriteria, language, user_id));

            UserOffer        userOffer;
            List <UserOffer> userOffers = new List <UserOffer>();

            if (OfferDT.Rows.Count == 0)
            {
                throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.OFFER, offerM.OFFER_NOT_FOUND));
            }

            foreach (System.Data.DataRow dataRow in OfferDT.Rows)
            {
                userOffer = new UserOffer();
                userOffer.ORDERTYPE_NAME = dataRow["ORDERTYPE_NAME"] is DBNull ? "" : dataRow["ORDERTYPE_NAME"].ToString();
                userOffer.colorname      = dataRow["COLOR_NAME"] is DBNull ? "" : dataRow["COLOR_NAME"].ToString();

                if (language == Messages.language.ar.ToString())
                {
                    userOffer.brandname = dataRow["BRANDNAME_AR"].ToString();
                    userOffer.modelname = dataRow["MODELNAME_AR"].ToString();
                }
                else
                {
                    userOffer.brandname = dataRow["BRANDNAME_EN"].ToString();
                    userOffer.modelname = dataRow["MODELNAME_EN"].ToString();
                }


                userOffer.OFFER_ID = dataRow["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["OFFER_ID"]);
                userOffer.ORDER_ID = dataRow["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["ORDER_ID"]);
                try
                {
                    userOffer.ORDER_DATE = Convert.ToDateTime(dataRow["ORDERDATE"].ToString()).ToString("dd-MM-yyyy");
                }
                catch (Exception ex)
                {
                    userOffer.ORDER_DATE = "";
                }
                userOffer.ORDER_NO      = dataRow["ORDER_IDENTITY"] is DBNull ? 0 : Convert.ToInt64(dataRow["ORDER_IDENTITY"]);
                userOffer.PRICE         = dataRow["PRICE"] is DBNull ? 0 : Convert.ToDouble(dataRow["PRICE"]);
                userOffer.SUPPLIER_Name = dataRow["SUPPLIER_Name"] is DBNull ? "" : dataRow["SUPPLIER_Name"].ToString();
                userOffer.timeValue     = dataRow["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeValue"]);
                userOffer.timeFlag      = dataRow["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeFlag"]);
                userOffer.supplierImage = dataRow["supplierImage"] is DBNull ? "" : dataRow["supplierImage"].ToString();
                userOffer.PHONENUMBER   = dataRow["PHONENUMBER"] is DBNull ? "" : dataRow["PHONENUMBER"].ToString();
                userOffer.lat           = dataRow["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONX"]);
                userOffer.lng           = dataRow["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONY"]);
                userOffer.Rating        = dataRow["RATING"] is DBNull ? 0 : Convert.ToDouble(dataRow["RATING"]);
                userOffer.Rater_No      = dataRow["Rater_NO"] is DBNull ? 0 : Convert.ToInt32(dataRow["Rater_NO"]);
                userOffer.offerStatus   = dataRow["offer_status"] is DBNull ? 0 : Convert.ToInt32(dataRow["offer_status"]);

                userOffer.RateType   = new Enums().checkRateTypeWords(userOffer.Rating, language);
                userOffer.RateTypeId = (int)new Enums().checkRateType(userOffer.Rating);

                if (offerCriteria.lat == 0 || offerCriteria.lng == 0 || userOffer.lat == 0 || userOffer.lng == 0)
                {
                    userOffer.DISTANCE = 0;
                    userOffer.time     = "0";
                }

                else
                {
                    double distanceMiles = Math.Sqrt(
                        Math.Pow((offerCriteria.lat - userOffer.lat) * 69, 2) +
                        Math.Pow((offerCriteria.lng - userOffer.lng) * 69.172, 2));
                    userOffer.DISTANCE = Math.Round(distanceMiles * 1.60934, 2);
                    userOffer.time     = new ServicesRepository(language).getTime(offerCriteria.lat + "," + offerCriteria.lng, userOffer.lat + "," + userOffer.lng);
                }



                userOffers.Add(userOffer);
            }
            return(userOffers);
        }
Ejemplo n.º 12
0
        public List <UserOffer> GetSupplierOffers(OfferCriteria offerCriteria, int user_id)
        {
            OfferQuery offerQuery = new OfferQuery(language);
            OrderQuery orderQuery = new OrderQuery(language);

            System.Data.DataTable OfferDT = new System.Data.DataTable();


            switch (offerCriteria.offerType)
            {
            case (int)OfferType.offerNotAccepted:
                OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersUnConfirmed(user_id, language));
                break;

            case (int)OfferType.offerAccepted:
                OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersConfirmed(user_id, language));
                break;

            case (int)OfferType.offerIsFixing:
                OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersStart(user_id, language));
                break;

            case (int)OfferType.offerFinishFixing:
                OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersfinish(user_id, language));
                break;

            default:
                OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersUnConfirmed(user_id, language));
                break;
            }


            UserOffer        userOffer;
            List <UserOffer> userOffers = new List <UserOffer>();

            if (OfferDT.Rows.Count == 0)
            {
                throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.OFFER, offerM.OFFER_NOT_FOUND));
            }

            foreach (System.Data.DataRow dataRow in OfferDT.Rows)
            {
                userOffer = new UserOffer();
                userOffer.ORDERTYPE_NAME = dataRow["ORDERTYPE_NAME"] is DBNull ? "" : dataRow["ORDERTYPE_NAME"].ToString();
                userOffer.colorname      = dataRow["COLOR_NAME"] is DBNull ? "" : dataRow["COLOR_NAME"].ToString();

                userOffer.firstName = dataRow["FIRSTNAME"].ToString();
                userOffer.lastName  = dataRow["LASTNAME"].ToString();
                userOffer.carImage  = dataRow["CARIMAGE"].ToString();
                userOffer.userImage = dataRow["userIMAGE"].ToString();

                if (language == Messages.language.ar.ToString())
                {
                    userOffer.brandname = dataRow["BRANDNAME_AR"].ToString();
                    userOffer.modelname = dataRow["MODELNAME_AR"].ToString();
                }
                else
                {
                    userOffer.brandname = dataRow["BRANDNAME_EN"].ToString();
                    userOffer.modelname = dataRow["MODELNAME_EN"].ToString();
                }


                userOffer.OFFER_ID      = dataRow["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["OFFER_ID"]);
                userOffer.ORDER_ID      = dataRow["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["ORDER_ID"]);
                userOffer.PRICE         = dataRow["PRICE"] is DBNull ? 0 : Convert.ToDouble(dataRow["PRICE"]);
                userOffer.SUPPLIER_Name = dataRow["SUPPLIER_Name"] is DBNull ? "" : dataRow["SUPPLIER_Name"].ToString();
                userOffer.timeValue     = dataRow["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeValue"]);
                userOffer.timeFlag      = dataRow["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeFlag"]);
                userOffer.supplierImage = dataRow["supplierImage"] is DBNull ? "" : dataRow["supplierImage"].ToString();
                userOffer.PHONENUMBER   = dataRow["PHONENUMBER"] is DBNull ? "" : dataRow["PHONENUMBER"].ToString();
                userOffer.lat           = dataRow["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONX"]);
                userOffer.lng           = dataRow["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONY"]);
                userOffer.Rating        = dataRow["RATING"] is DBNull ? 0 : Convert.ToDouble(dataRow["RATING"]);
                userOffer.offerStatus   = dataRow["offer_status"] is DBNull ? 0 : Convert.ToInt32(dataRow["offer_status"]);

                userOffer.RateType   = new Enums().checkRateTypeWords(userOffer.Rating, language);
                userOffer.RateTypeId = (int)new Enums().checkRateType(userOffer.Rating);

                if (offerCriteria.lat == 0 || offerCriteria.lng == 0 || userOffer.lat == 0 || userOffer.lng == 0)
                {
                    userOffer.DISTANCE = 0;
                    userOffer.time     = "0";
                }

                else
                {
                    double distanceMiles = Math.Sqrt(
                        Math.Pow((offerCriteria.lat - userOffer.lat) * 69, 2) +
                        Math.Pow((offerCriteria.lng - userOffer.lng) * 69.172, 2));
                    userOffer.DISTANCE = Math.Round(distanceMiles * 1.60934, 2);
                    userOffer.time     = new ServicesRepository(language).getTime(offerCriteria.lat + "," + offerCriteria.lng, userOffer.lat + "," + userOffer.lng);
                }

                userOffers.Add(userOffer);
            }
            return(userOffers);
        }