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()); }
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)); }
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()); }
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"); } }
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); }
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.")); }
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); }
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)); } }
public BuyOfferResponseDto(Resources price, List <InboxItem> inboxItems, UserOffer userOffer, UserPrize userPrize) { }
public static void AddPrizeToPaymentIfNeeded(this UserPaymentData paymentData, UserOffer offer, List <InboxItem> inboxItems) { }
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); }
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); }