public bool DeleteArray(Type requestType, long[][] requestIds) { bool status = false; var mapper = new DTOMapper(DbContext); var rqEntityType = mapper.GetTypeMaps().FirstOrDefault(x => x.TargetType.Equals(requestType))?.SourceType; if (rqEntityType == null) { throw new Exception("No typemap for " + requestType.Name + " found"); } var requestKeys = requestIds.Select(x => x.Cast <object>().ToArray()).ToArray(); foreach (var keys in requestKeys) { var entity = DbContext.Set(rqEntityType).Find(keys) as MappableEntity; if (entity != null) { //dbContext.Set(rqEntityType).Remove(entity); entity.Delete(DbContext); status = true; } } DbContext.SaveChanges(); return(status); }
public TModelDTO[] PostArray(Type requestType, TModelDTO[] data) { TModelDTO[] items = data; if (items == null) { return(null); } var entityMapper = new EntityMapper(DbContext) { UserName = UserName, UserId = UserId }; var dtoMapper = new DTOMapper(DbContext); var rqEntityType = dtoMapper.GetTypeMaps().FirstOrDefault(x => x.TargetType.Equals(requestType))?.SourceType; if (rqEntityType == null) { return(null); } var dbSet = DbContext.Set(rqEntityType); List <TModelDTO> resultItems = new List <TModelDTO>(); foreach (var item in items) { object entity = dbSet.Find(item.Keys); if (entity == null) { entity = dbSet.Create(); dbSet.Add(entity); } entityMapper.MapTo(item, entity, requestType, rqEntityType); DbContext.SaveChanges(); var dto = dtoMapper.MapTo(entity, requestType) as TModelDTO; resultItems.Add(dto); } items = resultItems.ToArray(); return(items); }
public TModelDTO[] PutArray(Type requestType, TModelDTO[] data) { TModelDTO[] items = data; var entityMapper = new EntityMapper(DbContext) { UserName = UserName, UserId = UserId }; var dtoMapper = new DTOMapper(DbContext); var rqEntityType = dtoMapper.GetTypeMaps().FirstOrDefault(x => x.TargetType.Equals(requestType))?.SourceType; if (rqEntityType == null) { return(null); } List <TModelDTO> resultItems = new List <TModelDTO>(); foreach (object item in items) { object entity = entityMapper.MapTo(item, null, requestType, rqEntityType); try { DbContext.SaveChanges(); } catch (Exception e) { throw e; } var dto = dtoMapper.MapTo(entity, requestType) as TModelDTO; resultItems.Add(dto); } items = resultItems.ToArray(); return(items); }
public TModelDTO[] GetArray(Type requestType, long[][] requestIds) { TModelDTO[] items = new TModelDTO[0]; var mapper = new DTOMapper(DbContext); if (requestType.Equals(typeof(ScoredResultDataDTO))) { //var leagueService = new LeagueDBService.LeagueDBService(); if (requestIds != null && requestIds.Count() > 0) { items = requestIds.Select(x => GetScoredResult(x[0], x[1])).Cast <TModelDTO>().ToArray(); } } else if (requestType.Equals(typeof(StandingsDataDTO))) { //var scoringIds = requestIds.Select(x => x[0]).ToArray(); //var sessionIds = requestIds.Select(x => x.Count() > 0 ? x[1] : 0).ToArray(); items = GetStandings(requestIds).Cast <TModelDTO>().ToArray(); } else if (requestType.Equals(typeof(IncidentReviewDataDTO))) { items = GetReviews(requestIds.Select(x => x.FirstOrDefault()).ToArray()).Cast <TModelDTO>().ToArray(); } else { var rqEntityType = mapper.GetTypeMaps().FirstOrDefault(x => x.TargetType.Equals(requestType))?.SourceType; if (rqEntityType == null) { return(null); } List <TModelDTO> resultItems = new List <TModelDTO>(); List <object> entities = new List <object>(); try { if (requestIds != null) { var requestKeys = requestIds.Select(x => x.Cast <object>().ToArray()).ToArray(); foreach (var keys in requestKeys) { object entity = DbContext.Set(rqEntityType).Find(keys); //if (entity == null) //throw new Exception("Entity not found in Database - Type: " + rqEntityType.Name + " || keys: { " + keys.Select(x => x.ToString()).Aggregate((x, y) => ", ") + " }"); if (entity != null) { entities.Add(entity); } } } else { entities = DbContext.Set(rqEntityType).ToListAsync().Result; } } catch (Exception e) { throw new Exception("Error while getting data from Database.", e); } try { foreach (var entity in entities) { var dto = mapper.MapTo(entity, requestType) as TModelDTO; resultItems.Add(dto); } } catch (Exception e) { throw new Exception("Error while mapping data.", e); } items = resultItems.ToArray(); } return(items); }