public bool EditUserServiceData(UserOffice userOffice, string serviceTypeName, IDictionary <string, string> data = null) { var service = GetUserService(userOffice, serviceTypeName); if (service == null || service.ServiceStatusId != (int)ServiceStatuses.Activated) { return(false); } data = data ?? new Dictionary <string, string>(); foreach (var d in data) { if (!string.IsNullOrEmpty(d.Value)) { var serviceData = _userServiceDataRepository.GetSingle(x => x.UserServiceId.Equals(service.Id) && x.Key == d.Key); if (serviceData != null && serviceData.Value != d.Value) { serviceData.Value = d.Value; _userServiceDataRepository.Update(serviceData); } } } return(true); }
public ServiceOperationStatus ActivateUserService(UserOffice userOffice, string serviceTypeName, IDictionary <string, string> data = null) { var service = GetUserService(userOffice, serviceTypeName); if (service == null || service.ServiceStatusId != (int)ServiceStatuses.Available) { return(ServiceOperationStatus.UnableToActivate); } data = data ?? new Dictionary <string, string>(); var unfilledData = _userServiceDataRepository.GetAll(x => x.UserServiceId.Equals(service.Id) && string.IsNullOrEmpty(x.Value)).ToList(); bool allDataUpdated = true; foreach (var serviceData in unfilledData) { string value; var result = data.TryGetValue(serviceData.Key, out value); if (result) { serviceData.Value = value; _userServiceDataRepository.Update(serviceData); } else { allDataUpdated = false; break; } } return(allDataUpdated ? _userServiceRepository.Activate(service) : ServiceOperationStatus.RequireAdditionData); }
public async Task SaveUserOffices(int userId, List <long> officesId) { if (officesId == null) { return; } if (!officesId.Any()) { return; } if (userId <= 0) { return; } List <UserOffice> userOffices = new List <UserOffice>(); foreach (var officeId in officesId) { UserOffice userOffice = new UserOffice(); userOffice.UserId = userId; userOffice.OfficeId = officeId; userOffices.Add(userOffice); } await officeRepository.SaveUserOffices(userOffices); }
public OfficeController( IUserServcieRepository userServcieRepository, IHttpContextAccessor httpContextAccessor, IUserOfficeRepository userOfficeRepository, IUserOfficeManager userOfficeManager, IMapper mapper, IUserServiceDataRepository userServiceDataRepository) { _userServcieRepository = userServcieRepository; _httpContextAccessor = httpContextAccessor; _userOfficeRepository = userOfficeRepository; _userOfficeManager = userOfficeManager; _mapper = mapper; _userServiceDataRepository = userServiceDataRepository; _currentUserId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; UserOffice = _userOfficeRepository.GetSingle(x => x.UserId.Equals(_currentUserId)); }
public void AddServiceToUserOffice(UserOffice userOffice, string serviceTypeName) { var serviceProvider = _serviceProviderRepository.GetByType(serviceTypeName); if (serviceProvider != null) { var service = _userServiceRepository.GetSingle( x => x.UserOfficeId.Equals(userOffice.Id) && x.ServiceProvider.Id.Equals(serviceProvider.Id)) ?? _userServiceRepository.Create(new UserService { ServiceProviderId = serviceProvider.Id, UserOfficeId = userOffice.Id }); var serviceProviderSettings = (ServiceProviderSettings)_appSettings.Value.ServiceProviderTypeSettings.GetType() .GetProperty(serviceTypeName) .GetValue(_appSettings.Value.ServiceProviderTypeSettings); if (serviceProviderSettings.UserData != null) { foreach (var pair in serviceProviderSettings.UserData) { var userServiceData = _userServiceDataRepository.GetSingle( x => x.UserServiceId.Equals(service.Id) && x.Key.Equals(pair.Key)); if (userServiceData == null) { _userServiceDataRepository.Create(new UserServiceData { Key = pair.Key, Value = string.IsNullOrEmpty(pair.Value) ? null : pair.Value, UserServiceId = service.Id }); } else if (userServiceData.Value != pair.Value && string.IsNullOrEmpty(userServiceData.Value)) { userServiceData.Value = pair.Value; _userServiceDataRepository.Update(userServiceData); } } } } }
public UserService GetUserService(UserOffice userOffice, string serviceTypeName) { return(_userServiceRepository.GetSingleWithNavigationProperties(x => x.UserOfficeId.Equals(userOffice.Id) && x.ServiceProvider.ServiceType.Name.Equals(serviceTypeName))); }
public IQueryable <UserService> GetUserServices(UserOffice userOffice, Expression <Func <UserService, bool> > expression = null) { var services = _userServiceRepository.GetAllWithNavigationProperties(x => x.UserOfficeId.Equals(userOffice.Id)); return(expression == null ? services : services.Where(expression)); }