/// <summary> /// Adds the New Worker /// </summary> private bool AddWorker(int careWorkerId, int personId) { if (Page.IsValid) { RockContext rockContext = new RockContext(); CareWorkerService careWorkerService = new CareWorkerService(rockContext); CareWorker careWorker = null; if (!careWorkerId.Equals(0)) { careWorker = careWorkerService.Get(careWorkerId); } if (careWorker == null) { careWorker = new CareWorker { Id = 0 }; } careWorker.Campuses = cpCampus.SelectedValues.AsDelimited(","); careWorker.PersonAliasId = ppNewPerson.PersonAliasId; careWorker.CategoryValues = dvpCategory.SelectedValues.AsDelimited(","); careWorker.IsActive = cbActive.Checked; careWorker.GeoFenceId = lpGeofenceLocation.Location?.Id; if (careWorker.IsValid) { if (careWorker.Id.Equals(0)) { careWorkerService.Add(careWorker); } // get attributes careWorker.LoadAttributes(); Helper.GetEditValues(phAttributes, careWorker); rockContext.WrapTransaction(() => { rockContext.SaveChanges(); careWorker.SaveAttributeValues(rockContext); }); return(true); } else { return(false); } } else { return(false); } }
/// <summary> /// Handles the Delete event of the gList control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param> protected void gList_Delete(object sender, RowEventArgs e) { var rockContext = new RockContext(); CareWorkerService service = new CareWorkerService(rockContext); CareWorker careWorker = service.Get(e.RowKeyId); if (careWorker != null) { service.Delete(careWorker); rockContext.SaveChanges(); } BindGrid(); }
private void BindGrid() { rFilter.Visible = true; gList.Visible = true; RockContext rockContext = new RockContext(); CareWorkerService careWorkerService = new CareWorkerService(rockContext); var qry = careWorkerService.Queryable("PersonAlias,PersonAlias.Person").AsNoTracking(); // Filter by Campus if (cpFilterCampus.SelectedCampusId.HasValue) { qry = qry.Where(b => b.Campuses.Contains(cpFilterCampus.SelectedCampusId.ToString())); } // Filter by Category var categoryValueId = dvpFilterCategory.SelectedDefinedValueId; if (categoryValueId != null) { qry = qry.Where(b => b.CategoryValues.Contains(categoryValueId.ToString())); } SortProperty sortProperty = gList.SortProperty; if (sortProperty != null) { qry = qry.Sort(sortProperty); } else { qry = qry.OrderBy(cw => cw.PersonAlias.Person.LastName).ThenBy(cw => cw.PersonAlias.Person.FirstName).ThenByDescending(cw => cw.Id); } // Filter query by any configured attribute filters if (AvailableAttributes != null && AvailableAttributes.Any()) { foreach (var attribute in AvailableAttributes) { var filterControl = phAttributeFilters.FindControl("filter_" + attribute.Id.ToString()); qry = attribute.FieldType.Field.ApplyAttributeQueryFilter(qry, filterControl, attribute, careWorkerService, Rock.Reporting.FilterMode.SimpleFilter); } } var list = qry.ToList(); gList.DataSource = list; gList.DataBind(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!Page.IsPostBack) { SetFilter(); BindGrid(); } else { var rockContext = new RockContext(); CareWorker item = new CareWorkerService(rockContext).Get(hfCareWorkerId.ValueAsInt()); if (item == null) { item = new CareWorker(); } item.LoadAttributes(); phAttributes.Controls.Clear(); Helper.AddEditControls(item, phAttributes, false, BlockValidationGroup, 2); } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="careWorkerId">The care worker identifier</param> public void ShowDetail(int careWorkerId) { CareWorker careWorker = null; var rockContext = new RockContext(); CareWorkerService careWorkerService = new CareWorkerService(rockContext); if (!careWorkerId.Equals(0)) { careWorker = careWorkerService.Get(careWorkerId); pdAuditDetails.SetEntity(careWorker, ResolveRockUrl("~")); cbActive.Checked = careWorker.IsActive; } else { cbActive.Checked = true; } if (careWorker == null) { careWorker = new CareWorker { Id = 0 }; pdAuditDetails.Visible = false; } if (careWorker.Campuses.IsNotNullOrWhiteSpace()) { cpCampus.SelectedCampusIds = careWorker.Campuses.SplitDelimitedValues(",").Select(c => c.AsInteger()).ToList(); } else { cpCampus.ClearSelection(); } if (careWorker.PersonAlias != null) { ppNewPerson.SetValue(careWorker.PersonAlias.Person); } else { ppNewPerson.SetValue(null); } dvpCategory.DefinedTypeId = DefinedTypeCache.Get(new Guid(rocks.kfs.StepsToCare.SystemGuid.DefinedType.CARE_NEED_CATEGORY)).Id; if (careWorker.CategoryValues.IsNotNullOrWhiteSpace()) { dvpCategory.SetValues(careWorker.CategoryValues.SplitDelimitedValues(",")); } else { dvpCategory.ClearSelection(); } if (careWorker.GeoFenceId != null) { var location = new LocationService(rockContext).Get(careWorker.GeoFenceId.Value); lpGeofenceLocation.SetBestPickerModeForLocation(location); lpGeofenceLocation.Location = location; } else { lpGeofenceLocation.Location = null; } careWorker.LoadAttributes(); Helper.AddEditControls(careWorker, phAttributes, true, BlockValidationGroup, 2); ppPerson_SelectPerson(null, null); hfCareWorkerId.Value = careWorker.Id.ToString(); }