private async Task <bool> RequestHaveFinishedOffer() { var searchRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Finished }; var offerList = await _offerService.GetAll <List <Offer> >(searchRequest); if (offerList.Count > 0) { SupplierId = offerList[0].UserId; var request = new RatingSearchRequest { RequestId = Id }; var ratingList = await _ratingService.GetAll <List <Rating> >(request); if (ratingList.Count > 0) { return(false); } return(true); } return(false); }
public async Task DeleteRequest() { var offerRequest = new OfferSearchRequest { RequestId = Id }; var offers = await _offerService.GetAll <List <MoveMe.Model.Offer> >(offerRequest); foreach (var item in offers) { await _offerService.Delete(item.OfferId); } var request = new RequestUpdateRequest { AdditionalInformation = AdditionalInformation, Date = Date, Price = Price, Rooms = Rooms, StatusId = StatusId, TotalWeightApprox = TotalWeightApprox, TransportDistanceApprox = TransportDistanceApprox, InActive = true }; await _requestService.Update <Request>(Id, request); }
private async void frmMostActiveUsers_Load(object sender, System.EventArgs e) { var suppliersReport = new List <SupplierReport>(); var clientReport = new List <ClientReport>(); var userSearchRequest = new UserSearchReqeust { RoleId = (int)RoleId.Client }; var clients = await _authService.GetUsers(userSearchRequest); userSearchRequest.RoleId = (int)RoleId.Supplier; var suppliers = await _authService.GetUsers(userSearchRequest); foreach (var client in clients) { var requestSearchRequest = new RequestSearchRequest { StatusId = (int)EStatus.Finished, UserId = client.Id }; var numberOfFinishedRequests = (await _requestService.GetAll <List <Offer> >(requestSearchRequest)).Count; clientReport.Add(new ClientReport { Client = $"{client.FirstName} {client.LastName}", NumberOfFinishedRequests = numberOfFinishedRequests }); } foreach (var supplier in suppliers) { var offerRequest = new OfferSearchRequest { OfferStatusId = (int)EOfferStatus.Finished, UserId = supplier.Id }; var numberOfFinishedOffers = (await _offerService.GetAll <List <Offer> >(offerRequest)).Count; suppliersReport.Add(new SupplierReport { Company = supplier.Company, NumberOfFinishedRequests = numberOfFinishedOffers }); } ClientReportBindingSource.DataSource = clientReport.OrderByDescending(a => a.NumberOfFinishedRequests).ToList(); SupplierReportBindingSource.DataSource = suppliersReport.OrderByDescending(a => a.NumberOfFinishedRequests).ToList(); this.rvMostActive.RefreshReport(); }
public IList <Model.Offer> GetAll(OfferSearchRequest request) { var query = _context.Offer.AsQueryable(); if (request?.ClientId.HasValue == true) { query = query.Where(x => x.ClientId == request.ClientId); } var list = query.ToList(); return(_mapper.Map <IList <Model.Offer> >(list)); }
public DashboardOffer GetDashboardOffers(OfferSearchRequest request) { var dashboardOfferList = new DashboardOffer(); var query = _context.Offer.AsQueryable(); if (!string.IsNullOrWhiteSpace(request?.AppUserId)) { query = query.Where(x => x.AppUserId == request.AppUserId); } var list = query .Include(a => a.Client) .Include(a => a.Status) .Include(a => a.Currency) .OrderByDescending(a => a.OfferId) .ToList(); foreach (var item in list) { var newOffer = new OfferData { StatusId = item.StatusId, ClientId = item.ClientId, OfferId = item.OfferId, Client = item.Client.FirstName + " " + item.Client.LastName, OfferName = item.Name, Status = item.Status.Name, TotalPrice = item.TotalPrice.ToString() + " " + item.Currency.Tag }; if ((item.StatusId == 1 || item.StatusId == 2 || item.StatusId == 4) && dashboardOfferList.OffersList.Count < 5) { dashboardOfferList.OffersList.Add(newOffer); } else if (item.StatusId == 3 && dashboardOfferList.ActiveProjectsList.Count < 5) { dashboardOfferList.ActiveProjectsList.Add(newOffer); } else if (dashboardOfferList.FinishedProjectsList.Count < 5 && item.StatusId == 5) { dashboardOfferList.FinishedProjectsList.Add(newOffer); } } checkIfDeadlineExceeded(); return(dashboardOfferList); }
private async Task <bool> RequestHaveActiveOffer() { var searchRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Active }; var offerList = await _offerService.GetAll <List <Offer> >(searchRequest); if (offerList.Count > 0) { return(true); } return(false); }
private async Task <bool> RequestHaveFinishedOfferWithoutRating() { var searchRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Finished }; var offerList = await _offerService.GetAll <List <Offer> >(searchRequest); if (offerList.Count > 0) { return(true); } return(false); }
private async void frmReportRequests_Load(object sender, EventArgs e) { var searchRequest = new RequestSearchRequest { StatusId = (int)EStatus.Finished }; var requestList = await _requestService.GetAll <List <Request> >(searchRequest); var sourceList = new List <RequestReport>(); foreach (var request in requestList) { var client = await _authService.GetById(request.ClientId); var clientAddress = await _addressService.GetById <Address>((int)client.AddressId); var requestAddress = await _addressService.GetById <Address>(request.DeliveryAddress); var offerRequest = new OfferSearchRequest { OfferStatusId = (int)EOfferStatus.Finished, RequestId = request.RequestId }; var finishedOffer = await _offerService.GetAll <List <Offer> >(offerRequest); var companyId = finishedOffer[0].UserId; var company = await _authService.GetById(companyId); var requestRow = new RequestReport { Client = $"{client.FirstName} {client.LastName}", AddressFrom = clientAddress.City, AddressTo = requestAddress.City, Company = company.Company, Date = request.Date, Price = $"{request.Price} $" }; sourceList.Add(requestRow); } RequestReportBindingSource.DataSource = sourceList; this.rvRequests.RefreshReport(); }
private async Task <bool> RequestHaveAcceptedOffer() { var searchRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Accepted }; var offerList = await _offerService.GetAll <List <Offer> >(searchRequest); if (offerList.Count > 0) { AcceptedOfferId = offerList[0].OfferId; SupplierId = offerList[0].UserId; return(true); } else { return(false); } }
public Model.OfferCounter GetOfferCounter(OfferSearchRequest request) { var query = _context.Offer.AsQueryable(); if (!string.IsNullOrWhiteSpace(request?.AppUserId)) { query = query.Where(x => x.AppUserId == request.AppUserId); } var list = query.ToList(); var offerCounter = new OfferCounter { AcceptedOffers = query.Where(a => a.StatusId == 2).Count(), DeniedOffers = query.Where(a => a.StatusId == 4).Count(), DoneOffers = query.Where(a => a.StatusId == 5).Count(), InProgressOffers = query.Where(a => a.StatusId == 3).Count(), WaitingOffers = query.Where(a => a.StatusId == 1).Count() }; return(offerCounter); }
public Model.OfferCounter GetOfferCounter([FromQuery] OfferSearchRequest request) { return(_service.GetOfferCounter(request)); }
public Model.DashboardOffer GetDashboardOffers([FromQuery] OfferSearchRequest request) { return(_service.GetDashboardOffers(request)); }
public IList <Model.Offer> GetAll([FromQuery] OfferSearchRequest request) { return(_service.GetAll(request)); }
private async Task InitFieldsVisibility() { _userId = int.Parse(JWTService.DecodeJWT()); var offerRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Accepted }; var allAcceptedOffers = await _offerService.GetAll <List <Offer> >(offerRequest); offerRequest.UserId = _userId; var acceptedOffers = allAcceptedOffers.Where(a => a.UserId == _userId).ToList(); offerRequest.OfferStatusId = (int)Models.OfferStatus.Active; var activeOffers = await _offerService.GetAll <List <Offer> >(offerRequest); offerRequest.OfferStatusId = (int)Models.OfferStatus.Finished; var finishedOffers = await _offerService.GetAll <List <Offer> >(offerRequest); offerRequest.OfferStatusId = (int)Models.OfferStatus.Rejected; var rejectedOffers = await _offerService.GetAll <List <Offer> >(offerRequest); if (activeOffers.Count == 0 && acceptedOffers.Count == 0 && finishedOffers.Count == 0 && allAcceptedOffers.Count == 0) { SendOfferVisible = true; } else { SendOfferVisible = false; } if (finishedOffers.Count > 0) { OfferSendMessageVisible = false; OfferRejected = false; OfferFinished = true; OfferAcceptedVisible = false; } else if (activeOffers.Count > 0) { OfferSendMessageVisible = true; OfferRejected = false; OfferFinished = false; OfferAcceptedVisible = false; } else if (acceptedOffers.Count > 0) { OfferSendMessageVisible = false; OfferRejected = false; OfferFinished = false; OfferAcceptedVisible = true; } else if (rejectedOffers.Count > 0) { OfferSendMessageVisible = false; OfferRejected = true; OfferFinished = false; OfferAcceptedVisible = false; } }
public async Task Init() { var request = await _requestService.GetById <Request>(Id); if (request.Inactive == true) { InActiveRequest = true; ActiveRequest = false; return; } InitRequest(request); var address = await _addressService.GetById <Address>(request.DeliveryAddress); var country = await _countryService.GetById <Country>((int)address.CountryId); var status = await _statusService.GetById <Model.Status>(request.StatusId); InitStatus(status); Address = $"{country.Name}, {address.ZipCode}, {address.City}"; IsSupplier = JWTService.DecodeJWTRole() == Role.Supplier; IsClient = !IsSupplier; if (IsClient) { var searchRequest = new OfferSearchRequest { RequestId = Id, OfferStatusId = (int)Models.OfferStatus.Active }; var offerList = await _offerService.GetAll <List <Offer> >(searchRequest); if (offerList.Count == 0) { HaveAcceptedOffer = await RequestHaveAcceptedOffer(); HaveFinishedOffer = await RequestHaveFinishedOffer(); HaveActiveOffers = await RequestHaveActiveOffer(); var finishedOffer = await RequestHaveFinishedOfferWithoutRating(); if (!HaveAcceptedOffer && !finishedOffer) { ShowEditButton = true; } if (HaveFinishedOffer) { var list = await _ratingTypeService.GetAll <List <Model.RatingType> >(); RatingTypeList.Clear(); foreach (var rt in list) { RatingTypeList.Add(rt); } } } else { ShowList = true; } OfferList.Clear(); foreach (var offer in offerList) { var supplier = await _authService.GetById(offer.UserId); var supplierAddress = await _addressService.GetById <Address>((int)supplier.AddressId); var supplierCountry = await _countryService.GetById <Country>((int)supplierAddress.CountryId); var user = await _authService.GetById(offer.UserId); var newOffer = new RequestDetailsOffers { Company = user.Company, UserFromId = offer.UserId, Address = supplierCountry.Name + ", " + supplierAddress.City, OfferId = offer.OfferId }; OfferList.Add(newOffer); } OffersHeight = OfferList.Count * 65; } else { await InitFieldsVisibility(); } var recommendedRequests = await _requestService.RecommendRequest <List <Request> >(Id); RecommendedRequests.Clear(); foreach (var recRequest in recommendedRequests) { var toAddress = await _addressService.GetById <Address>(recRequest.DeliveryAddress); var toCountry = await _countryService.GetById <Country>((int)toAddress.CountryId); var fromUser = await _authService.GetById(recRequest.ClientId); var fromAddress = await _addressService.GetById <Address>((int)fromUser.AddressId); var fromCountry = await _countryService.GetById <Country>((int)fromAddress.CountryId); var requestModel = new RequestModel { FromCountry = fromCountry.Name, Price = recRequest.Price, RequestId = recRequest.RequestId, ToCountry = toCountry.Name, FullName = $"{fromUser.FirstName} {fromUser.LastName}" }; RecommendedRequests.Add(requestModel); } if (RecommendedRequests.Count > 0) { RecommendShowList = true; } else { RecommendShowList = false; } }
public List <OffersVM> Get(OfferSearchRequest req) { var query = _context.Offers.Include(o => o.Schedule).ThenInclude(s => s.ScheduleStatus).Include(s => s.Schedule.Request).ThenInclude(r => r.User).ThenInclude(u => u.CarModel).AsQueryable(); var list = new List <Database.Offers>(); var modelList = new List <Data.ViewModel.OffersVM>(); if (req.ScheduleID > 0) { query = query.Where(o => o.ScheduleID == req.ScheduleID); list = query.ToList(); foreach (var x in list) { modelList.Add(new Data.ViewModel.OffersVM() { ScheduleID = x.Schedule.ScheduleID, RequestID = x.Schedule.RequestID, DateofSchedule = x.Schedule.DateofSchedule, Date = x.Schedule.DateofSchedule.Day + " " + x.Schedule.DateofSchedule.Month + "." + x.Schedule.DateofSchedule.Year, ScheduleStatusID = x.Schedule.ScheduleStatusID, Status = x.Schedule.ScheduleStatus.name, isPaid = x.Schedule.isPaid, totalPrice = x.Schedule.totalPrice, User = x.Schedule.Request.User.FirstName + " " + x.Schedule.Request.User.LastName, OfferID = x.OfferID, isLocked = x.isLocked, partsSelected = x.partsSelected, UserCar = x.Schedule.Request.User.CarModel.CarModelName }); } return(modelList); } if (req.AdminSearch) { query = query.Where(o => o.Schedule.ScheduleStatusID == 1 && o.partsSelected == true && o.Schedule.Request.CarServiceID == req.CarServiceID); list = query.OrderBy(o => o.Schedule.DateofSchedule).ToList(); } foreach (var x in list) { /* * public int ScheduleID { get; set; } * * public int RequestID { get; set; } * * public DateTime DateofSchedule { get; set; } * * public string Date { get; set; } * public int ScheduleStatusID { get; set; } //napraviti referentnu za statuse * * public string Status { get; set; } * * public bool isPaid { get; set; } * * public double totalPrice { get; set; } * * public string User { get; set; } * public int OfferID { get; set; } * * public bool isLocked { get; set; } * * public bool partsSelected { get; set; }//from user */ modelList.Add(new Data.ViewModel.OffersVM() { ScheduleID = x.Schedule.ScheduleID, RequestID = x.Schedule.RequestID, DateofSchedule = x.Schedule.DateofSchedule, Date = x.Schedule.DateofSchedule.Day + " " + x.Schedule.DateofSchedule.Month + "." + x.Schedule.DateofSchedule.Year, ScheduleStatusID = x.Schedule.ScheduleStatusID, Status = x.Schedule.ScheduleStatus.name, isPaid = x.Schedule.isPaid, totalPrice = x.Schedule.totalPrice, User = x.Schedule.Request.User.FirstName + " " + x.Schedule.Request.User.LastName, OfferID = x.OfferID, isLocked = x.isLocked, partsSelected = x.partsSelected, UserCar = x.Schedule.Request.User.CarModel.CarModelName }); } return(modelList); }
public List <Data.ViewModel.OffersVM> Get([FromQuery] OfferSearchRequest req) { return(_service.Get(req)); }