public static List<SubEntityRecord> GetDropdownValues(LocationAdminDetailView parent, int orgUnitId) { IEnumerable<OrgUnitOrgUnitTypeDto> existingTypes = new List<OrgUnitOrgUnitTypeDto>(); if (orgUnitId != 0) existingTypes = GetOrgUnitOrgUnitTypes(parent, orgUnitId); var request = new ListOrgUnitTypesRequest() { IsEnabled = true }; var types = parent.ProcessRequest<ListOrgUnitTypesResponse>(request).OrgUnitTypes; var records = new List<SubEntityRecord>(); foreach (var type in types.Where(t => !existingTypes.Any(e => e.OrgUnitTypeId == t.Id))) { var record = new SubEntityRecord(); record.DisplayName = type.Name; record.Id = type.Id; record.Fields.Add(new Field(_idField, "Id", FieldTypes.Hidden, null)); record.Fields.Add(new Field(_orgUnitIdField, _orgUnitIdField, FieldTypes.Hidden, orgUnitId)); record.Fields.Add(new Field(_orgUnitTypeIdField, _orgUnitTypeIdField, FieldTypes.Hidden, type.Id)); record.Fields.Add(new Field(_nameField, "Name", FieldTypes.Label, type.Name)); record.Fields.Add(new Field(_isPrimaryOrgUnitTypeField, "Is Primary", FieldTypes.Checkbox, false, true)); records.Add(record); } return records; }
public static List<SubEntityRecord> GetDropdownValues(LocationAdminDetailView parent, int orgUnitId) { IEnumerable<OrgUnitInsuranceDto> existingInsurances = new List<OrgUnitInsuranceDto>(); if (orgUnitId != 0) existingInsurances = GetOrgUnitInsurances(parent, orgUnitId); var request = new ListInsurancesRequest() { IsEnabled = true }; var insurances = parent.ProcessRequest<ListInsurancesResponse>(request).Insurances; var records = new List<SubEntityRecord>(); foreach (var insurance in insurances.Where(i => !existingInsurances.Any(e => e.InsuranceId == i.Id))) { var record = new SubEntityRecord(); record.DisplayName = insurance.Name; record.Id = insurance.Id; record.Fields.Add(new Field(_idField, "Id", FieldTypes.Hidden, null)); record.Fields.Add(new Field(_orgUnitIdField, _orgUnitIdField, FieldTypes.Hidden, orgUnitId)); record.Fields.Add(new Field(_insuranceIdField, _insuranceIdField, FieldTypes.Hidden, insurance.Id)); record.Fields.Add(new Field(_nameField, "Name", FieldTypes.Label, insurance.Name)); records.Add(record); } return records; }
public static void Save(LocationAdminDetailView parent, SubEntity hours, int orgUnitId) { var partiallySaved = false; try { hours.ErrorMessage = string.Empty; //New foreach (var record in hours.Records.Where(r => r.Action == RecordActions.New)) { var timeSpan = CommonUtils.CreateScheduleTimeSpan(parent.GetFieldValue(record.Fields, _dayField), parent.GetFieldValue(record.Fields, _openTime), parent.GetFieldValue(record.Fields, _closeTime)); var request = new AddOrgUnitScheduleRequest() { LocationId = int.Parse(parent.GetFieldValue(record.Fields, _orgUnitIdField)), OpenTime = timeSpan.OpenTime, OpenHours = timeSpan.OpenHours }; parent.ProcessRequest<AddOrgUnitScheduleResponse>(request); partiallySaved = true; } //Deletes foreach (var record in hours.Records.Where(r => r.Action == RecordActions.Deleted)) { var request = new DeleteOrgUnitScheduleRequest(int.Parse(parent.GetFieldValue(record.Fields, _idField))); parent.ProcessRequest<DeleteOrgUnitScheduleResponse>(request); partiallySaved = true; } } catch (Exception ex) { hours.ErrorMessage = ex.Message; if(!partiallySaved) throw; } hours = BuildLocationHoursSubEntity(parent, orgUnitId); }
public static void Save(LocationAdminDetailView parent, SubEntity insurances, int orgUnitId) { var partiallySaved = false; try { insurances.ErrorMessage = string.Empty; //Existing Records Added foreach (var record in insurances.Records.Where(r => r.Action == RecordActions.Added)) { var request = new AddOrgUnitInsuranceRequest() { OrgUnitId = orgUnitId, InsuranceId = int.Parse(parent.GetFieldValue(record.Fields, _insuranceIdField)) }; parent.ProcessRequest<AddOrgUnitInsuranceResponse>(request); partiallySaved = true; } //New Records Created foreach (var record in insurances.Records.Where(r => r.Action == RecordActions.New)) { //Add New OrgUnit insurance var addInsuranceRequest = new AddInsuranceRequest() { Name = parent.GetFieldValue(record.Fields, _nameField), IsEnabled = true }; var addedInsuranceId = parent.ProcessRequest<AddInsuranceResponse>(addInsuranceRequest).Id; //Add newly created insurance to OrgUnit var request = new AddOrgUnitInsuranceRequest() { OrgUnitId = orgUnitId, InsuranceId = addedInsuranceId }; parent.ProcessRequest<AddOrgUnitInsuranceResponse>(request); partiallySaved = true; } //Deletes foreach (var record in insurances.Records.Where(r => r.Action == RecordActions.Deleted)) { var request = new RemoveOrgUnitInsuranceRequest() { Id = int.Parse(parent.GetFieldValue(record.Fields, _idField)) }; parent.ProcessRequest<RemoveOrgUnitInsuranceResponse>(request); partiallySaved = true; } } catch (Exception ex) { insurances.ErrorMessage = ex.Message; if(!partiallySaved) throw; } insurances = BuildLocationInsurancesSubEntity(parent, orgUnitId); }
private static IEnumerable<OrgUnitInsuranceDto> GetOrgUnitInsurances(LocationAdminDetailView parent, int orgUnitId) { var request = new ListOrgUnitInsurancesRequest(orgUnitId); return parent.ProcessRequest<ListOrgUnitInsurancesResponse>(request).OrgUnitInsurances; }
public static void Save(LocationAdminDetailView parent, SubEntity orgUnitTypes, int orgUnitId) { var partiallySaved = false; try { orgUnitTypes.ErrorMessage = string.Empty; if (orgUnitTypes.Records.Count(s => s.Fields.Any(f => f.FieldName == _isPrimaryOrgUnitTypeField) && bool.Parse(parent.GetFieldValue(s.Fields, _isPrimaryOrgUnitTypeField))) > 1) throw new BusinessException("Only one Location Type can be set as the primary location"); //Edits foreach (var record in orgUnitTypes.Records.Where(r => r.Action == RecordActions.Edited)) { var request = new UpdateOrgUnitOrgUnitTypeRequest { Id = int.Parse(parent.GetFieldValue(record.Fields, _idField)), OrgUnitId = orgUnitId, OrgUnitTypeId = int.Parse(parent.GetFieldValue(record.Fields, _orgUnitTypeIdField)), IsPrimaryOrgUnitType = bool.Parse(parent.GetFieldValue(record.Fields, _isPrimaryOrgUnitTypeField)) }; parent.ProcessRequest<UpdateOrgUnitOrgUnitTypeResponse>(request); partiallySaved = true; } //Existing Records Added foreach (var record in orgUnitTypes.Records.Where(r => r.Action == RecordActions.Added)) { var request = new AddOrgUnitOrgUnitTypeRequest() { OrgUnitId = orgUnitId, OrgUnitTypeId = int.Parse(parent.GetFieldValue(record.Fields, _orgUnitTypeIdField)), IsPrimaryOrgUnitType = bool.Parse(parent.GetFieldValue(record.Fields, _isPrimaryOrgUnitTypeField)), }; parent.ProcessRequest<AddOrgUnitOrgUnitTypeResponse>(request); partiallySaved = true; } //New Records Created foreach (var record in orgUnitTypes.Records.Where(r => r.Action == RecordActions.New)) { //Add New OrgUnit Type var addTypeRequest = new AddOrgUnitTypeRequest() { Name = parent.GetFieldValue(record.Fields, _nameField), IsEnabled = bool.Parse(parent.GetFieldValue(record.Fields, _isEnabledField)), IsOutsideOfOrganization = bool.Parse(parent.GetFieldValue(record.Fields, _isExternalField)), SiteIndicator = bool.Parse(parent.GetFieldValue(record.Fields, _siteIndicatorField)), ImageUrl = parent.GetFieldValue(record.Fields, _imageUrlField) }; var addedTypeId = parent.ProcessRequest<AddOrgUnitTypeResponse>(addTypeRequest).Id; partiallySaved = true; //Add newly created type to OrgUnit var request = new AddOrgUnitOrgUnitTypeRequest() { OrgUnitId = orgUnitId, OrgUnitTypeId = addedTypeId, IsPrimaryOrgUnitType = bool.Parse(parent.GetFieldValue(record.Fields, _isPrimaryOrgUnitTypeField)) }; parent.ProcessRequest<AddOrgUnitOrgUnitTypeResponse>(request); partiallySaved = true; } //Deletes foreach (var record in orgUnitTypes.Records.Where(r => r.Action == RecordActions.Deleted)) { var request = new RemoveOrgUnitOrgUnitTypeRequest() { Id = int.Parse(parent.GetFieldValue(record.Fields, _idField)) }; parent.ProcessRequest<RemoveOrgUnitOrgUnitTypeResponse>(request); partiallySaved = true; } } catch (Exception ex) { orgUnitTypes.ErrorMessage = ex.Message; if (!partiallySaved) throw; } orgUnitTypes = BuildLocationTypesSubEntity(parent, orgUnitId); }
private static IEnumerable<OrgUnitServicesDto> GetOrgUnitServices(LocationAdminDetailView parent, int orgUnitId) { var request = new ListOrgUnitServicesRequest(orgUnitId) { IsAdminView = true }; return parent.ProcessRequest<ListOrgUnitServicesResponse>(request).OrgUnitServices; }
private static IEnumerable<OrgUnitScheduleListItem> GetOrgUnitHours(LocationAdminDetailView parent, int orgUnitId) { var request = new ListOrgUnitScheduleRequest(orgUnitId); return parent.ProcessRequest<ListOrgUnitScheduleResponse>(request).ScheduleTimeSpans; }