public async Task <PersistData> SetPersistData([FromBody] SetDataRequest request) { var game = (await gameRepository.Lookup(request.gameLookup)).FirstOrDefault(); if (game == null) { throw new ArgumentException(); } var profile = (await profileRepository.Lookup(request.profileLookup)).FirstOrDefault(); if (profile == null) { throw new NoSuchUserException(); } var lookup = new PersistDataLookup(); lookup.profileLookup = request.profileLookup; lookup.gameLookup = request.gameLookup; lookup.DataIndex = request.dataIndex; lookup.PersistType = request.persistType; //delete request PersistData data_entry = null; if (request.base64Data.Length == 0) { bool success = await persistRepository.Delete(lookup); //if(success) { var data = new PersistData(); data.Modified = DateTime.UtcNow; data.Profile = profile; return(data); } } else { data_entry = (await persistRepository.Lookup(lookup)).FirstOrDefault(); if (data_entry != null) { data_entry.Base64Data = Convert.FromBase64String(request.base64Data); return(await persistRepository.Update(data_entry)); } else { var data = new PersistData(); data.Base64Data = Convert.FromBase64String(request.base64Data); data.DataIndex = request.dataIndex; data.PersistType = request.persistType; data.Profileid = profile.Id; data.Gameid = game.Id; return(await persistRepository.Create(data)); } } }
public async Task <IEnumerable <PersistData> > GetPersistData([FromBody] GetDataRequest request) { var lookup = new PersistDataLookup(); lookup.profileLookup = request.profileLookup; lookup.gameLookup = request.gameLookup; lookup.DataIndex = request.dataIndex; lookup.PersistType = request.persistType; lookup.modifiedSince = request.modifiedSince; return(await persistRepository.Lookup(lookup)); }