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 IActionResult GetServiceData([FromBody] UserServiceRequestModel model) { var response = new ApiResponseModel(); var service = _userOfficeManager.GetUserService(UserOffice, model.ServiceTypeName); if (service.ServiceStatusId != (int)ServiceStatuses.Activated) { response.Message = "Service doesn't have an activated status"; return(BadRequest(response)); } var data = _userServiceDataRepository.GetAll(x => x.UserServiceId.Equals(service.Id)); foreach (var d in data) { response.Data.Add(d.Key, d.Value); } return(Ok(response)); }