void CreateDefaultRecord(FindApptStatuses request, IGenericEntityRepositoryBase <ApptStatus, IDataContextNhJars> repository) { ApptStatus sts = new ApptStatus() { UseInterfaceType = request.InterfaceTypeName, ViewName = request.ViewType, StatusCriteria = "" }; sts = repository.CreateUpdate(sts, "SYSTEM"); Type t = Type.GetType(request.InterfaceTypeName); if (t == typeof(IEntityWithStatusLabels)) { sts.StatusCriteria = $"([StatusKey] = '{sts.Id}')"; repository.CreateUpdate(sts, "SYSTEM"); } }
public ApptStatusesResponse Any(FindApptStatuses request) { return(ExecuteFaultHandledMethod(() => { ApptStatusesResponse response = new ApptStatusesResponse(); if (request != null) { Expression <Func <ApptStatus, bool> > query = LinqExpressionBuilder.True <ApptStatus>(); //DisplayName if (!request.ViewType.IsNullOrEmpty()) { query = query.And(j => j.ViewName == request.ViewType); } //IsActive if (!request.StatusName.IsNullOrEmpty()) { query = query.And(o => o.StatusName.Like($"{request.StatusName}%")); } //var _repository = _DataRepositoryFactory.GetDataRepository<IApptStatusRepository>(); var _repository = _DataRepositoryFactory.GetDataRepository <IGenericEntityRepositoryBase <ApptStatus, IDataContextNhJars> >(); IList <ApptStatus> resList = _repository.Where(query).ToList(); if (resList.Count == 0 && request.ViewType != "" && request.StatusName == null) { CreateDefaultRecord(request, _repository); response.Statuses = _repository.Where(query).ToList().ConvertAll(s => s.ConvertTo <ApptStatusDto>()); } else { response.Statuses = resList.ToList().ConvertAll(s => s.ConvertTo <ApptStatusDto>()); } //call the extension method to remove any sub child parent references. //response.UpdateChildReferences(); } return response; })); }