public ActionResult GetProviderServicesAtDate(ServiceProviderModel provider,DateTime date)
        {
            var services = _servicesService.GetAllServicesWithMatchingCriteria(date,provider);
            JsonEventsListViewModel events = new JsonEventsListViewModel(services);

            return new JsonNetResult(new { success = true, data = events }, JsonRequestBehavior.AllowGet);
        }
 public ActionResult Edit(ServiceProviderModel model)
 {
     if (ModelState.IsValid)
     {
         var response = _serviceProviderService.Update(model);
         return Json(new { success = response.IsSucceed, data = response.Message }, JsonRequestBehavior.AllowGet);
     }
     else
         return Json(new { success = false}, JsonRequestBehavior.AllowGet);
 }
 public ActionResult GetRegisteredServicesWithMatchingProvider(ServiceProviderModel serviceProvider)
 {
     if(ModelState.IsValid)
     {
         var registeredServices = _servicesService.GetAllServicesWithMatchingCriteria(serviceProvider);
         return Json(new { success = true, data = registeredServices }, JsonRequestBehavior.AllowGet);
     }
     else
         return Json(new { success = false }, JsonRequestBehavior.AllowGet);
 }
        public Dictionary<ServiceTypeModel, bool> GetServiceTypesMatchingTimeCriteria(DateTime time, ServiceProviderModel provider)
        {
            var resultCollection = new Dictionary<ServiceTypeModel, bool>();
            using (var unitOfWork = _unitOfWorkFactory.Create())
            {
                try
                {
                    var registratedServiceTypes = unitOfWork.RegistratedServiceRepository.Get(x => x.ServiceProviderId == provider.Id
                                                                                     && x.StartDate.Day == time.Date.Day
                                                                                     && x.StartDate.Month == time.Date.Month
                                                                                     && x.StartDate.Year == time.Date.Year);
                    var serviceTypes = unitOfWork.ServiceTypeRepository.Get();

                    resultCollection = AvailableServiceTypesHelper.CheckAvailability(time,registratedServiceTypes, serviceTypes.Select(x => new ServiceTypeModel(x)));
                }
                catch (Exception e)
                {
                    _logger.LogToFile(_logger.CreateErrorMessage(e));
                }
            }
            return resultCollection;
        }
        public ActionResult GetServiceTypesMatchingTimeCriteria(DateTime time, ServiceProviderModel provider)
        {
            var services = _serviceTypeService.GetServiceTypesMatchingTimeCriteria(time, provider);

            return new JsonNetResult(new { success = true, data = services.ToArray() }, JsonRequestBehavior.AllowGet);
        }
 public List<RegistratedServiceModel> GetAllServicesWithMatchingCriteria(DateTime date, ServiceProviderModel serviceProvider)
 {
     List<RegistratedServiceModel> serviceModels = new List<RegistratedServiceModel>();
     using (var unitOfWork = _unitOfWorkFactory.Create())
     {
         try
         {
             var entities = unitOfWork.RegistratedServiceRepository.Get(x => x.StartDate.Day == date.Date.Day
                                                                        && x.StartDate.Month == date.Date.Month
                                                                        && x.StartDate.Year == date.Date.Year
                                                                        && x.ServiceProviderId == serviceProvider.Id);
             foreach (var entity in entities)
             {
                 serviceModels.Add(new RegistratedServiceModel(entity));
             }
             unitOfWork.Save();
         }
         catch (Exception e)
         {
             _logger.LogToFile(_logger.CreateErrorMessage(e));
         }
     }
     return serviceModels;
 }