public async Task <ActionResult <AppDataResponse> > PostInitDb(AppDataResponse bundle) { await _adminRepository.InitDb(bundle); return(Created("initdb", bundle)); }
public Task InitDb(AppDataResponse appData) { appData.Events.Sort((i1, i2) => i1.Id.CompareTo(i2.Id)); appData.Paths.Sort((i1, i2) => i1.Id.CompareTo(i2.Id)); appData.Places.Sort((i1, i2) => i1.Id.CompareTo(i2.Id)); appData.Speakers.Sort((i1, i2) => i1.Id.CompareTo(i2.Id)); appData.Timetables.Sort((i1, i2) => i1.Id.CompareTo(i2.Id)); var newEvents = new List <Event>(appData.Events.Last().Id); var newPaths = new List <Path>(appData.Paths.Last().Id); var newPlaces = new List <Place>(appData.Places.Last().Id); var newSpeakers = new List <Speaker>(appData.Speakers.Last().Id); var newTimetables = new List <Timetable>(appData.Timetables.Last().Id); for (var i = 1; i <= appData.Places.Last().Id; ++i) { var obj = appData.Places.FirstOrDefault(o => o.Id == i); if (obj != null) { newPlaces.Add(obj); } else { newPlaces.Add(new Place { Id = i, IsBlocked = true }); } } for (var i = 1; i <= appData.Events.Last().Id; ++i) { var obj = appData.Events.FirstOrDefault(o => o.Id == i); if (obj != null) { newPlaces.Add(new Place { Id = (newPlaces.LastOrDefault()?.Id ?? 1) + 1, Type = 0, Name = obj.Room, Info = obj.Address, Dor1Img = obj.Dor1Img, Dor2Img = obj.Dor2Img, Latitude = obj.Latitude, Longitude = obj.Longitude }); newEvents.Add(new Event { Id = obj.Id, Name = obj.Name, Img = obj.Img, Info = obj.Info, Topic = obj.Topic, SpeakerId = obj.SpeakerId, PlaceId = newPlaces.LastOrDefault()?.Id ?? 1 }); } else { newEvents.Add(new Event { Id = i, IsBlocked = true }); } } for (var i = 1; i <= appData.Paths.Last().Id; ++i) { var obj = appData.Paths.FirstOrDefault(o => o.Id == i); if (obj != null) { newPaths.Add(obj); } else { newPaths.Add(new Path { Id = i, IsBlocked = true }); } } for (var i = 1; i <= appData.Speakers.Last().Id; ++i) { var obj = appData.Speakers.FirstOrDefault(o => o.Id == i); if (obj != null) { newSpeakers.Add(obj); } else { newSpeakers.Add(new Speaker { Id = i, IsBlocked = true }); } } for (var i = 1; i <= appData.Timetables.Last().Id; ++i) { var obj = appData.Timetables.FirstOrDefault(o => o.Id == i); if (obj != null) { newTimetables.Add(obj); } else { newTimetables.Add(new Timetable { Id = i, IsBlocked = true }); } } _context.Paths.AddRange(newPaths); _context.Places.AddRange(newPlaces); _context.Speakers.AddRange(newSpeakers); _context.Events.AddRange(newEvents); _context.Timetables.AddRange(newTimetables); return(_updateTimeRepository.UpdateTimestamp()); }