public void DeleteAll(string entityType) { var query = new QueryExpression(entityType); var items = XrmService.RetrieveAll(query); XrmService.DeleteMultiple(items); }
public void DeleteRecentData() { foreach (var entityType in EntitiesToDelete) { var query = new QueryExpression(entityType); query.Criteria.AddCondition("createdon", ConditionOperator.GreaterThan, DateTime.Now.AddMinutes(-30)); var items = XrmService.RetrieveAll(query); XrmService.DeleteMultiple(items); } }
public object GetAggregate(Guid id, XrmService service) { object newValue = null; switch (AggregateType) { case AggregateType.Exists: { //if the aggregate returns a result > 0 then one exists var fetch = GetLookupFetch(id); var result = service.RetrieveAllFetch(fetch); newValue = result.Any() && XrmEntity.GetInt(result.ElementAt(0).GetFieldValue(FetchAlias)) > 0; break; } case AggregateType.Count: { var result = service.RetrieveAllFetch(GetLookupFetch(id)); if (result.Any()) { newValue = result.ElementAt(0).GetFieldValue(FetchAlias); } break; } case AggregateType.Sum: { var result = service.RetrieveAllFetch(GetLookupFetch(id)); if (result.Any()) { newValue = result.ElementAt(0).GetFieldValue(FetchAlias); } break; } case AggregateType.Min: { var query = GetAggregatedRecordQueryForLookup(id); query.AddOrder(AggregatedField, OrderType.Ascending); var minRecord = service.RetrieveFirst(query); newValue = minRecord.GetField(AggregatedField); break; } case AggregateType.CSV: case AggregateType.PSV: { var query = GetAggregatedRecordQueryForLookup(id); query.AddOrder(AggregatedField, OrderType.Ascending); var records = service.RetrieveAll(query); var labels = records.Select( delegate(Entity item) { return(item.GetField(AggregatedField)); }). ToArray(); if (AggregateType == AggregateType.CSV) { newValue = string.Join(", ", labels); } else { newValue = string.Join("|", labels); } newValue = ((string)newValue).Left(1000); break; } } if (newValue == null && NullAmount != null) { newValue = NullAmount; } return(newValue); }
public object GetRollup(LookupRollup rollup, Guid id) { object newValue = null; switch (rollup.RollupType) { case RollupType.Exists: { //if the Rollup returns a result > 0 then one exists var fetch = GetLookupFetch(rollup, id); var result = XrmService.Fetch(fetch); newValue = result.Any() && XrmEntity.GetInt(result.First().GetFieldValue(FetchAlias)) > 0; break; } case RollupType.Count: { var result = XrmService.Fetch(GetLookupFetch(rollup, id)); if (result.Any()) { newValue = result.ElementAt(0).GetFieldValue(FetchAlias); } break; } case RollupType.Sum: { var result = XrmService.Fetch(GetLookupFetch(rollup, id)); if (result.Any()) { newValue = result.ElementAt(0).GetFieldValue(FetchAlias); } break; } case RollupType.Min: { var query = GetRollupQueryForLookup(rollup, id); query.AddOrder(rollup.FieldRolledup, OrderType.Ascending); var minRecord = XrmService.RetrieveFirst(query); newValue = minRecord.GetField(rollup.FieldRolledup); break; } case RollupType.CSV: case RollupType.PSV: { var query = GetRollupQueryForLookup(rollup, id); query.AddOrder(rollup.FieldRolledup, OrderType.Ascending); var records = XrmService.RetrieveAll(query); var labels = records.Select(e => e.GetField(rollup.FieldRolledup)). ToArray(); if (rollup.RollupType == RollupType.CSV) { newValue = string.Join(", ", labels); } else { newValue = string.Join("|", labels); } newValue = ((string)newValue).Left(1000); break; } } if (newValue == null && rollup.NullAmount != null) { newValue = rollup.NullAmount; } if (newValue != null && rollup.ObjectType != null) { if (rollup.ObjectType == typeof(decimal)) { newValue = Convert.ToDecimal(newValue.ToString()); } } return(newValue); }