public ServicePathViewModel GetServicePathForProvider(String id, int pathId) { List <Service> services = helper.getUserServices(id); List <Service> activeSerives = helper.getServicesFiltered(services, CoreController.ServiceStatus.Active.ToString()); List <Service> doneServices = helper.getServicesFiltered(services, CoreController.ServiceStatus.Done.ToString()); double speed = UserHelperLibrary.ServiceProviderSpeed(helper.findUser(id), doneServices.Count); speed = speed < 1 ? 1 : speed; List <ServicePath> paths = db.ServicePaths.Where(a => a.id.Equals(pathId)).ToList(); if (paths.Count == 0) { paths = db.ServicePaths.Where(a => a.ServiceProviderId.Equals(null) && a.Enabled).ToList(); } List <ServicePathViewModel> result = new List <ServicePathViewModel>(); foreach (var item in paths) { int numOfOpenDreams = activeSerives.Where(a => a.ServicePathId.Equals(item.id)).Count(); ServicePathViewModel temp = new ServicePathViewModel(); temp.id = item.id; temp.Cost = item.Cost; temp.Name = item.Name; temp.NumberOfPeopleWaiting = numOfOpenDreams; temp.AvgWaitingTime = UserHelperLibrary.getWaitingTimeMessage(Double.Parse(speed.ToString()), Double.Parse(numOfOpenDreams.ToString())).Replace("Your average waiting time is ", ""); result.Add(temp); } return(result[0]); }
public ServiceViewModel getMapping(Service service) { List <Service> allService = db.Services.Where(a => a.ServiceProviderId.Equals(service.ServiceProviderId) && a.ServicePathId.Equals(service.ServicePathId) && a.Status.Equals(CoreController.ServiceStatus.Active.ToString())).ToList(); List <Service> services = helper.getUserServices(service.ServiceProviderId); List <Service> activeSerives = helper.getServicesFiltered(services, CoreController.ServiceStatus.Active.ToString()); List <Service> doneServices = helper.getServicesFiltered(services, CoreController.ServiceStatus.Done.ToString()); double speed = UserHelperLibrary.ServiceProviderSpeed(helper.findUser(service.ServiceProviderId), doneServices.Count); AccountController accountCont = new AccountController(); ServiceViewModel result = new ServiceViewModel(); result.Comments = service.Comments; result.Country = service.Country; result.CreationDate = service.CreationDate; result.Creator = service.Creator; result.Description = service.Description; result.CreatorId = service.CreatorId; result.DidYouExorcism = service.DidYouExorcism; result.DreamDate = service.DreamDate; result.Explanation = service.Explanation; result.ExplanationDate = service.ExplanationDate; result.HaveYouPrayedBeforeTheDream = service.HaveYouPrayedBeforeTheDream; result.id = service.id; result.IsThereWakefulness = service.IsThereWakefulness; result.JobStatus = service.JobStatus; result.KidsStatus = service.KidsStatus; result.LastModificationDate = service.LastModificationDate; result.Modifier = service.Modifier; result.ModifierId = service.ModifierId; result.Name = service.Name; result.numberOfLikes = service.numberOfLikes; result.numberOfViews = service.numberOfViews; result.PrivateService = service.PrivateService; result.PrivateServicePrice = service.PrivateServicePrice; result.PublicServiceAction = service.PublicServiceAction; result.RegligionStatus = service.RegligionStatus; result.ServicePathId = service.ServicePathId; result.ServiceProvider = service.ServiceProvider; result.ServiceProviderId = service.ServiceProviderId; result.Sex = service.Sex; result.SocialStatus = service.SocialStatus; result.Status = service.Status; result.UserWork = service.UserWork; result.UserWorkId = service.UserWorkId; result.ServicePath = service.ServicePath; result.NumberOfAllPeopleWaiting = allService.Count > 0 ? allService.Count : 0; result.NumberOfRemainingPeople = allService.Count > 0 ? allService.Where(a => a.CreationDate.CompareTo(service.CreationDate) < 0).Count() : 0; result.AvgWaitingTime = UserHelperLibrary.getWaitingTimeMessage(Double.Parse(speed.ToString()), Double.Parse(result.NumberOfRemainingPeople.ToString())).Replace("Your average waiting time is ", ""); return(result); }