private static List <SaveFileModel> InitCompareFileModel(List <HttpModel> httplist) { List <SaveFileModel> saveFileModels = new List <SaveFileModel>(); //httplist to saveFileModels ParserServer.Parser(httplist); for (int i = 0; i < ParserServer.list.Count; i++) { SaveFileModel saveFileModel = new SaveFileModel(); saveFileModel.IP = ParserServer.list[i].Req.IP_SourceAddress.Replace(',', '.'); saveFileModel.Port = ParserServer.list[i].Req.TCP_SourcePort; saveFileModel.CommandType = GetCmdTypeFromHttpModel(ParserServer.list[i]); saveFileModel.CommandInterval = GetCmdIntervalFromHttpModel(ParserServer.list[i]); saveFileModel.ReqResInterval = GetReqResIntervalFromHttpModel(ParserServer.list[i]); saveFileModels.Add(saveFileModel); } return(saveFileModels); }
public void RunOutputValidTest() { _manager.Generate(); SaveFileModel model1 = null, model2 = null; try { model1 = _deserializer.Deserialize(Path.Combine(_outputDir, _opts.Options.PlayerOne.OutputSaveLocation)); model2 = _deserializer.Deserialize(Path.Combine(_outputDir, _opts.Options.PlayerTwo.OutputSaveLocation)); } catch (Exception e) { Assert.True(false, $"Failed to parse the output save files: {e}"); } Assert.NotNull(model1); Assert.NotNull(model2); // Basic checks Assert.Equal("Test1", model1.PlayerName); Assert.Equal("Test2", model2.PlayerName); Assert.Equal(_opts.Configuration.TeamSize, model1.TeamPokemonList.Pokemon.Count()); Assert.Equal(_opts.Configuration.TeamSize, model2.TeamPokemonList.Pokemon.Count()); foreach (var pokemon in model1.TeamPokemonList.Pokemon) { Assert.Equal(100, pokemon.Level); } }
private static SaveFileModel MapFileModel(GetFileResponse response) { var model = new SaveFileModel { Version = response.Data.Version, FolderId = response.Data.FolderId, Title = response.Data.Title, IsArchived = response.Data.IsArchived, PublishedOn = response.Data.PublishedOn, Description = response.Data.Description, OriginalFileName = response.Data.OriginalFileName, OriginalFileExtension = response.Data.OriginalFileExtension, FileUri = response.Data.FileUri, PublicUrl = response.Data.FileUrl, FileSize = response.Data.FileSize, IsTemporary = response.Data.IsTemporary, IsUploaded = response.Data.IsUploaded, IsCanceled = response.Data.IsCanceled, Tags = response.Tags != null?response.Tags.Select(t => t.Name).ToList() : null, AccessRules = response.AccessRules, ThumbnailId = response.Data.ThumbnailId, Categories = response.Data.Categories != null?response.Data.Categories.Select(t => t.Id).ToList() : null, }; return(model); }
public static string GetSaveFileName(SaveFileModel saveFileParams) { SaveFileDialog dialog = new SaveFileDialog(); dialog.CheckFileExists = saveFileParams.CheckFileExists; dialog.CheckPathExists = saveFileParams.CheckPathExists; dialog.CreatePrompt = saveFileParams.CreatePrompt; dialog.CustomPlaces = saveFileParams.CustomPlaces; dialog.DefaultExt = saveFileParams.DefaultExt; dialog.DereferenceLinks = saveFileParams.DereferenceLinks; dialog.FileName = saveFileParams.FileName; // FileNames not supported! dialog.Filter = saveFileParams.Filter; dialog.FilterIndex = saveFileParams.FilterIndex; dialog.InitialDirectory = saveFileParams.InitialDirectory; dialog.OverwritePrompt = saveFileParams.OverWriteprompt; dialog.Title = saveFileParams.Title; if (dialog.ShowDialog() == true) { saveFileParams.FileName = dialog.FileName; saveFileParams.SafeFileName = dialog.SafeFileName; saveFileParams.SafeFileNames = dialog.SafeFileNames; return(dialog.FileName); } return(""); }
/// <inheritdoc /> public void Serialize(Stream stream, SaveFileModel save) { _bwriter.Open(stream); _breader.Open(stream); Serialize(save); _breader.Close(); _bwriter.Close(); }
private async Task <SaveFileResponse> Save(string fullPath, SaveFileModel model) { using (var fileStream = new FileStream(fullPath, FileMode.Create)) { await model.Stream.CopyToAsync(fileStream); } return(new SaveFileResponse(model.FileName, Schema)); }
/// <inheritdoc /> public void Serialize(string fileName, SaveFileModel save) { using (var stream = File.Open(fileName, FileMode.Open)) { _bwriter.Open(stream); _breader.Open(stream); Serialize(save); _breader.Close(); _bwriter.Close(); } }
public SaveFileRepositoryTests() { _testFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Gold.sav"); using (var fileStream = new FileStream(_testFile, FileMode.Open, FileAccess.Read)) { _testStream = new MemoryStream(); fileStream.CopyTo(_testStream); _testStreamShim = new StreamShim(_testStream); } _saveFileRepository = new SaveFileRepository(new Charset(), new BinaryWriter2(), new BinaryReader2());; _expectedModel = BuildTestModel(); }
public JsonResult SaveFileToServer() { try { _log.Debug("SaveFileToServer Start"); SaveFileModel model = new SaveFileModel() { FileName = CommonHelper.DecodeUrl(Request.Form["FileName"]), Docid = CommonHelper.DecodeUrl(Request.Form["Docid"]), TokenId = CommonHelper.GetToken(Request.Form["TokenId"]), Ondup = Convert.ToInt64(Request.Form["Ondup"]) }; _log.Debug($"SaveFileToServer: {model.FileName}"); try { var postFile = Request.Files[0]; var fileLength = postFile.ContentLength; byte[] fileBytes = new byte[fileLength]; postFile.InputStream.Read(fileBytes, 0, fileLength); model.Base64Str = fileBytes; } catch (Exception ex) { _log.Debug($"SaveFileToServer Read Exception: {ex.Message}"); return(Json(new JsonModel { Success = false, Message = ex.Message })); } IAS7APIHelper helper = new AS7APIHelper(); var uploadFileRes = helper.UploadFile(model); if (uploadFileRes.ErrorCode == 403002039) { uploadFileRes.FileName = helper.GetSuggestFileName(model.TokenId, model.Docid, model.FileName); } _log.Debug("SaveFileToServer End"); return(Json(new JsonModel { Success = true, StatusCode = uploadFileRes.ErrorCode, Data = JsonConvert.SerializeObject(uploadFileRes) })); } catch (Exception ex) { _log.Debug($"SaveFileToServer Exception: {ex.Message}"); return(Json(new JsonModel { Success = false, Message = ex.Message })); } }
public JsonResult SaveAttachmentToServer() { try { _log.Debug("SaveAttachmentToServer Start"); var base64Str = GetEmailAttachment(); if (base64Str != null) { SaveFileModel model = new SaveFileModel() { Base64Str = base64Str, FileName = CommonHelper.DecodeUrl(Request.Form["FileName"]), Docid = CommonHelper.DecodeUrl(Request.Form["Docid"]), TokenId = CommonHelper.GetToken(Request.Form["TokenId"]), Ondup = Convert.ToInt64(Request.Form["Ondup"]) }; IAS7APIHelper helper = new AS7APIHelper(); var uploadFileRes = helper.UploadFile(model); if (uploadFileRes.ErrorCode == 403002039) { uploadFileRes.FileName = helper.GetSuggestFileName(model.TokenId, model.Docid, model.FileName); } _log.Debug("SaveAttachmentToServer End"); return(Json(new JsonModel { Success = true, StatusCode = uploadFileRes.ErrorCode, Data = JsonConvert.SerializeObject(uploadFileRes) })); } else { _log.Debug("SaveAttachmentToServer No Attachment Content"); return(Json(new JsonModel { Success = false })); } } catch (Exception ex) { _log.Debug($"SaveAttachmentToServer Exception: {ex.Message}"); return(Json(new JsonModel { Success = false, Message = ex.Message })); } }
public void SaveLog() { var fileSaveParams = new SaveFileModel { Title = "Save log file as csv", InitialDirectory = Settings.DataPath }; var outputFile = FileIOHelper.GetSaveFileName(fileSaveParams); if (outputFile.Length > 0) { var allText = LogEntryClass.WriteCsvHeaderLine(); foreach (var X in LogCollectionManager.LogEvents) { allText += X.WriteAsCsv(); } File.WriteAllText(outputFile, allText); } }
protected virtual void AssertSavModelEqualityThorough(SaveFileModel expectedModel, SaveFileModel actualModel) { Assert.True(expectedModel.PlayerName.Equals(actualModel.PlayerName), "Player Name"); Assert.True(expectedModel.RivalName.Equals(actualModel.RivalName), "Player Rival Name"); Assert.True(expectedModel.TimePlayed.Equals(actualModel.TimePlayed), "Time Played"); Assert.True(expectedModel.Money.Equals(actualModel.Money), "Money"); Assert.True(expectedModel.JohtoBadges.Equals(actualModel.JohtoBadges), "Johto Badges"); Assert.True(expectedModel.TMpocket.TMs.Length.Equals(actualModel.TMpocket.TMs.Length), "TMs"); Assert.True(expectedModel.TMpocket.HMs.Length.Equals(actualModel.TMpocket.HMs.Length), "HMs"); Assert.True(expectedModel.PocketItemList.Count.Equals(actualModel.PocketItemList.Count), "Pocket Item List"); Assert.True(expectedModel.PocketKeyItemList.Count.Equals(actualModel.PocketKeyItemList.Count), "Pocket Key Item List"); Assert.True(expectedModel.PocketBallItemList.Count.Equals(actualModel.PocketBallItemList.Count), "Pocket Ball Item List"); Assert.True(expectedModel.PCItemList.Count.Equals(actualModel.PCItemList.Count), "PC Item List"); Assert.True(expectedModel.CurrentPCBoxNumber.Equals(actualModel.CurrentPCBoxNumber), "Current PC Box Number"); Assert.True(expectedModel.PCBoxNames.Length.Equals(actualModel.PCBoxNames.Length), "PC Box Names"); Assert.True(expectedModel.TeamPokemonList.Count.Equals(actualModel.TeamPokemonList.Count), "Team Pokemon List"); Assert.True(expectedModel.TeamPokemonList.OTNames.Length.Equals(actualModel.TeamPokemonList.OTNames.Length), "Team Pokemon List"); Assert.True(expectedModel.TeamPokemonList.Names.Length.Equals(actualModel.TeamPokemonList.Names.Length), "Team Pokemon List"); Assert.True(expectedModel.TeamPokemonList.Pokemon.Length.Equals(actualModel.TeamPokemonList.Pokemon.Length), "Team Pokemon List"); Assert.True(expectedModel.PokedexOwned.Length.Equals(actualModel.PokedexOwned.Length), "Pokedex Owned"); Assert.True(expectedModel.PokedexSeen.Length.Equals(actualModel.PokedexSeen.Length), "Pokedex Seen"); Assert.True(expectedModel.CurrentBoxPokemonlist.Count.Equals(actualModel.CurrentBoxPokemonlist.Count), "Pokedex Seen"); Assert.True(expectedModel.Boxes[0].Count.Equals(actualModel.Boxes[0].Count), "Box1 Count"); Assert.True(expectedModel.Boxes[1].Count.Equals(actualModel.Boxes[1].Count), "Box2 Count"); for (var i = 0; i < expectedModel.TeamPokemonList.Count; i++) { var pokemonExpected = expectedModel.TeamPokemonList.Pokemon[i]; var pokemonActual = actualModel.TeamPokemonList.Pokemon[i]; AssertPokemonEqualityThorough(pokemonExpected, pokemonActual); } for (var i = 0; i < expectedModel.PCBoxNames.Length; i++) { Assert.True(expectedModel.PCBoxNames[i].Equals(actualModel.PCBoxNames[i]), $"PC BOX{i + 1} Name"); } var test = actualModel.CurrentBoxPokemonlist.Pokemon.Cast <Pokemon>().Select(p => p.SpeciesId).ToList(); for (var i = 0; i < expectedModel.CurrentBoxPokemonlist.Pokemon.Length; i++) { var pokemonExpected = expectedModel.CurrentBoxPokemonlist.Pokemon[i]; var pokemonActual = actualModel.CurrentBoxPokemonlist.Pokemon[i]; Assert.True(pokemonExpected.SpeciesId.Equals(pokemonActual.SpeciesId), "Pokemon Species"); } }
public void UploadFile() { string path = $"{AppDomain.CurrentDomain.BaseDirectory}\\TestFile\\testfile.docx"; string base64 = CommonHelper.GetBase64FormPath(path); byte[] base64Bytes = System.Text.Encoding.Default.GetBytes(base64); SaveFileModel model = new SaveFileModel() { Base64Str = base64Bytes, FileName = TestData.fileName, Docid = TestData.folderId, TokenId = TestData.access_token, Ondup = 2 }; var res = helper.UploadFile(model); Assert.IsNotNull(res); }
/// <inheritdoc /> public void Save(string outname, string filename, SaveFileModel save) { if (!File.Exists(filename)) { throw new FileNotFoundException($"The provided input save file was not found or inaccessible. '{filename}'."); } if (File.Exists(outname) && !Path.GetFullPath(filename).Equals(Path.GetFullPath(outname))) { File.Delete(outname); } if (!Path.GetFullPath(filename).Equals(Path.GetFullPath(outname))) { File.Copy(filename, outname); } _saveFileRepository.Serialize(outname, save); }
public IActionResult CreateTransformFile([FromBody] SaveFileModel model) { if (model == null) { return(BadRequest()); } var filename = model.Filename; var extension = Path.GetExtension(filename); if (string.IsNullOrEmpty(extension)) { filename = filename + ".json"; } var filePath = Path.Combine(_hostingEnvironment.WebRootPath, "configs", filename); var content = string.Empty; // Rename file name if (!string.IsNullOrEmpty(model.OriginFilename) && filename != model.OriginFilename) { if (System.IO.File.Exists(filePath)) { return(BadRequest("File exist")); } var originFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "configs", model.OriginFilename); System.IO.File.Move(originFilePath, filePath); return(Json(new { success = true })); } if (System.IO.File.Exists(filePath)) { // } else { System.IO.File.Create(filePath); } return(Json(new { success = true })); }
public JsonResultBO SaveTemplateFile(SaveFileModel saveFileModel, string category) { var result = new JsonResultBO(true); var saveRes = UploadProvider.SaveFile(saveFileModel.File, saveFileModel.Name.GetFileNameFormart(), saveFileModel.ExtensionList, saveFileModel.MaxSize, saveFileModel.Folder, saveFileModel.Path); if (saveRes.status) { var obj = new TD_QuanLyMauTest(); obj.FileDirectory = saveRes.path; obj.FileName = string.IsNullOrEmpty(saveFileModel.Name) ? saveFileModel.File.FileName : saveFileModel.Name; obj.Category = category; obj.Size = saveFileModel.File.ContentLength / 1024; _quanLyMauTestRepository.Add(obj); _quanLyMauTestRepository.Save(); } else { result.Status = false; result.Message = saveRes.message; } return(result); }
public void SaveFileModelTest() { SaveFileModel saveFileModel = new SaveFileModel() { Docid = "Docid", Base64Str = null, FileName = "FileName", Ondup = 1, TokenId = "TokenId", }; var Docid = saveFileModel.Docid; var FileName = saveFileModel.FileName; var TokenId = saveFileModel.TokenId; var Ondup = saveFileModel.Ondup; var Base64Str = saveFileModel.Base64Str; Assert.IsTrue(Docid == "Docid"); Assert.IsTrue(FileName == "FileName"); Assert.IsTrue(TokenId == "TokenId"); Assert.IsTrue(Ondup == 1); Assert.IsTrue(Base64Str == null); }
protected virtual SaveFileModel BuildTestModel() { var model = new SaveFileModel { PlayerName = "Justin", RivalName = "ASSBITE", TimePlayed = 10755348, Money = 20271, JohtoBadges = 6, TMpocket = new TMPocket { TMs = new byte[50], HMs = new byte[7] }, PocketItemList = new ItemList(19), PocketKeyItemList = new ItemList(6), PocketBallItemList = new ItemList(3), PCItemList = new ItemList(6), CurrentPCBoxNumber = 0, PCBoxNames = new string[14] { "BOX1", "BOX2", "BOX3", "BOX4", "BOX5", "BOX6", "BOX7", "BOX8", "BOX9", "BOX10", "BOX11", "BOX12", "BOX13", "BOX14", }, PokedexOwned = new bool[256], PokedexSeen = new bool[256], CurrentBoxPokemonlist = new PokeList(20) { Pokemon = new Pokemon[20] { new Pokemon { SpeciesId = 180, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 72, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 128, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 234, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 132, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 96, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 27, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 201, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 179, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 95, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 175, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 185, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 75, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 160, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 133, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 33, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 64, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 241, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 82, OTName = "Empty", Name = "Empty" }, new Pokemon { SpeciesId = 213, OTName = "Empty", Name = "Empty" } } }, Boxes = new PokeList[14] { new PokeList(20), new PokeList(3), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0), new PokeList(0) }, Checksum1 = 4902, TeamPokemonList = new PokeList(6) { Pokemon = new Pokemon[6] { new Pokemon { SpeciesId = 149, HeldItem = 80, MoveIndex1 = 87, MoveIndex2 = 126, MoveIndex3 = 8, MoveIndex4 = 95, TrainerId = 3370, Experience = 35000, HitPointsEV = 65535, AttackEV = 65535, DefenseEV = 65535, SpeedEV = 65535, SpecialEV = 65535, AttackIV = 15, DefenseIV = 15, SpeedIV = 15, SpecialIV = 15, Move1PowerPointsUps = 3, Move1PowerPointsCurrent = 16, Move2PowerPointsUps = 3, Move2PowerPointsCurrent = 8, Move3PowerPointsUps = 3, Move3PowerPointsCurrent = 24, Move4PowerPointsUps = 3, Move4PowerPointsCurrent = 32, Friendship = 255, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 2, CaughtLevel = 5, OTGender = 0, CaughtLocation = 18, Level = 30, Status = 0, Unused = 0, CurrentHp = 122, MaxHp = 122, Attack = 113, Defense = 90, Speed = 81, SpAttack = 93, SpDefense = 93, OTName = "Justin", Name = "DRAGONITE" }, new Pokemon { SpeciesId = 83, HeldItem = 77, MoveIndex1 = 64, MoveIndex2 = 28, MoveIndex3 = 31, MoveIndex4 = 19, TrainerId = 3370, Experience = 10700, HitPointsEV = 3613, AttackEV = 2863, DefenseEV = 3311, SpeedEV = 3451, SpecialEV = 2477, AttackIV = 4, DefenseIV = 9, SpeedIV = 5, SpecialIV = 15, Move1PowerPointsUps = 0, Move1PowerPointsCurrent = 35, Move2PowerPointsUps = 0, Move2PowerPointsCurrent = 15, Move3PowerPointsUps = 0, Move3PowerPointsCurrent = 20, Move4PowerPointsUps = 0, Move4PowerPointsCurrent = 15, Friendship = 119, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 0, CaughtLevel = 0, OTGender = 0, CaughtLocation = 0, Level = 22, Status = 0, Unused = 0, CurrentHp = 61, MaxHp = 61, Attack = 38, Defense = 36, Speed = 36, SpAttack = 39, SpDefense = 41, OTName = "Justin", Name = "FARFETCH'D" }, new Pokemon { SpeciesId = 58, HeldItem = 49, MoveIndex1 = 44, MoveIndex2 = 36, MoveIndex3 = 52, MoveIndex4 = 43, TrainerId = 3370, Experience = 24580, HitPointsEV = 4316, AttackEV = 4799, DefenseEV = 4535, SpeedEV = 4538, SpecialEV = 3616, AttackIV = 0, DefenseIV = 8, SpeedIV = 5, SpecialIV = 14, Move1PowerPointsUps = 0, Move1PowerPointsCurrent = 25, Move2PowerPointsUps = 0, Move2PowerPointsCurrent = 20, Move3PowerPointsUps = 0, Move3PowerPointsCurrent = 25, Move4PowerPointsUps = 0, Move4PowerPointsCurrent = 30, Friendship = 142, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 0, CaughtLevel = 0, OTGender = 0, CaughtLocation = 0, Level = 26, Status = 0, Unused = 0, CurrentHp = 69, MaxHp = 69, Attack = 45, Defense = 36, Speed = 43, SpAttack = 52, SpDefense = 42, OTName = "Justin", Name = "GROWLITH", }, new Pokemon { SpeciesId = 147, HeldItem = 0, MoveIndex1 = 82, MoveIndex2 = 57, MoveIndex3 = 86, MoveIndex4 = 239, TrainerId = 3370, Experience = 19953, HitPointsEV = 6146, AttackEV = 7681, DefenseEV = 6816, SpeedEV = 7558, SpecialEV = 5838, AttackIV = 6, DefenseIV = 9, SpeedIV = 15, SpecialIV = 4, Move1PowerPointsUps = 0, Move1PowerPointsCurrent = 10, Move2PowerPointsUps = 0, Move2PowerPointsCurrent = 15, Move3PowerPointsUps = 0, Move3PowerPointsCurrent = 20, Move4PowerPointsUps = 0, Move4PowerPointsCurrent = 20, Friendship = 138, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 0, CaughtLevel = 0, OTGender = 0, CaughtLocation = 0, Level = 25, Status = 0, Unused = 0, CurrentHp = 63, MaxHp = 63, Attack = 45, Defense = 37, Speed = 42, SpAttack = 36, SpDefense = 36, OTName = "Justin", Name = "DRATINI", }, new Pokemon { SpeciesId = 100, HeldItem = 0, MoveIndex1 = 33, MoveIndex2 = 103, MoveIndex3 = 49, MoveIndex4 = 120, TrainerId = 3370, Experience = 12651, HitPointsEV = 112, AttackEV = 146, DefenseEV = 95, SpeedEV = 129, SpecialEV = 136, AttackIV = 12, DefenseIV = 6, SpeedIV = 3, SpecialIV = 2, Move1PowerPointsUps = 0, Move1PowerPointsCurrent = 35, Move2PowerPointsUps = 0, Move2PowerPointsCurrent = 40, Move3PowerPointsUps = 0, Move3PowerPointsCurrent = 20, Move4PowerPointsUps = 0, Move4PowerPointsCurrent = 5, Friendship = 86, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 0, CaughtLevel = 0, OTGender = 0, CaughtLocation = 0, Level = 23, Status = 0, Unused = 0, CurrentHp = 52, MaxHp = 52, Attack = 25, Defense = 31, Speed = 53, SpAttack = 31, SpDefense = 31, OTName = "Justin", Name = "VOLTORB", }, new Pokemon { SpeciesId = 30, HeldItem = 0, MoveIndex1 = 10, MoveIndex2 = 33, MoveIndex3 = 40, MoveIndex4 = 24, TrainerId = 3370, Experience = 7896, HitPointsEV = 4028, AttackEV = 4394, DefenseEV = 4143, SpeedEV = 4293, SpecialEV = 3202, AttackIV = 5, DefenseIV = 15, SpeedIV = 8, SpecialIV = 12, Move1PowerPointsUps = 0, Move1PowerPointsCurrent = 35, Move2PowerPointsUps = 0, Move2PowerPointsCurrent = 35, Move3PowerPointsUps = 0, Move3PowerPointsCurrent = 35, Move4PowerPointsUps = 0, Move4PowerPointsCurrent = 30, Friendship = 135, PokerusStrain = 0, PokerusDuration = 0, CaughtTime = 0, CaughtLevel = 0, OTGender = 0, CaughtLocation = 0, Level = 22, Status = 0, Unused = 0, CurrentHp = 71, MaxHp = 71, Attack = 38, Defense = 44, Speed = 36, SpAttack = 37, SpDefense = 37, OTName = "Justin", Name = "NIDORINA", } } } }; return(model); }
public SaveGame(SaveFileModel dataModel) { _dataModel = dataModel; PartyPokemon = new List<Pokemon>(); }
/// <summary> /// 文件上传 /// </summary> /// <param name="model">SaveFileModel</param> public UploadFileRes UploadFile(SaveFileModel model) { UploadFileRes uploadFileRes = new UploadFileRes(); try { var handler = new WebRequestHandler(); handler.ServerCertificateValidationCallback = delegate { return(true); }; using (var httpClient = new HttpClient(handler)) { httpClient.DefaultRequestHeaders.Add("Authorization", model.TokenId); // 文件body byte[] body = model.Base64Str; var json = "{\"docid\":\"" + model.Docid + "\",\"name\":\"" + model.FileName.Trim() + "\",\"length\":" + body.Length + ",\"ondup\":" + model.Ondup + "}"; var content = new StringContent(json, Encoding.UTF8, "application/json"); var res = httpClient.PostAsync($"{Constant.OAuth2Url}/api/efast/v1/file/osbeginupload", content).Result; var resStr = res.Content.ReadAsStringAsync().Result; int resCode = (int)res.StatusCode; // 若为错误返回码则抛出异常 if (resCode < 200 || resCode >= 300) { var errModel = JsonConvert.DeserializeObject <ErrorModel>(resStr); _log.Debug($"UploadFile Osbeginupload Exception: {errModel.cause}, Code: {errModel.code}"); uploadFileRes.ErrorDetail = JsonConvert.SerializeObject(errModel.detail); uploadFileRes.ErrorCode = errModel.code; return(uploadFileRes); } var dynamicObj = JsonConvert.DeserializeObject <dynamic>(resStr); string method = dynamicObj["authrequest"][0].Value; string url = dynamicObj["authrequest"][1].Value; string rev = dynamicObj["rev"].Value; string docid = dynamicObj["docid"].Value; uploadFileRes.FileId = docid; uploadFileRes.FileName = model.FileName.Trim(); List <string> headers = new List <string>(); for (int i = 2; i < dynamicObj["authrequest"].Count; ++i) { headers.Add(dynamicObj["authrequest"][i].Value); } OSSAPIHelper ossHttpHelper = new OSSAPIHelper(); HttpWebResponse ossResult = ossHttpHelper.SendReqToOSS(method, url, headers, body); int oosCode = (int)ossResult.StatusCode; // 若为错误返回码则抛出异常 if (oosCode < 200 || oosCode >= 300) { Stream resStream = ossResult.GetResponseStream(); string errBody = string.Empty; using (StreamReader reader = new StreamReader(resStream, Encoding.UTF8)) { errBody = reader.ReadToEnd(); } var errModel = JsonConvert.DeserializeObject <ErrorModel>(errBody); _log.Debug($"UploadFile SendReqToOSS Exception: {errModel.cause}"); uploadFileRes.ErrorDetail = JsonConvert.SerializeObject(errModel.detail); uploadFileRes.ErrorCode = errModel.code; ossResult.Close(); return(uploadFileRes); } ossResult.Close(); string sendJson = "{\"docid\":\"" + docid + "\",\"rev\":\"" + rev + "\"}"; var sendContent = new StringContent(sendJson, Encoding.UTF8, "application/json"); var sendRes = httpClient.PostAsync($"{Constant.OAuth2Url}/api/efast/v1/file/osendupload", sendContent).Result; var sendResStr = sendRes.Content.ReadAsStringAsync().Result; int sendCode = (int)sendRes.StatusCode; // 若为错误返回码则抛出异常 if (sendCode < 200 || sendCode >= 300) { var errModel = JsonConvert.DeserializeObject <ErrorModel>(sendResStr); _log.Debug($"UploadFile Oosendupload Exception: {errModel.cause}"); uploadFileRes.ErrorDetail = JsonConvert.SerializeObject(errModel.detail); uploadFileRes.ErrorCode = errModel.code; return(uploadFileRes); } } return(uploadFileRes); } catch (Exception ex) { _log.Debug($"UploadFile Exception: {ex.Message}"); throw ex; } }
public SaveGame(SaveFileModel dataModel) { _dataModel = dataModel; PartyPokemon = new List <Pokemon>(); }
/// <summary> /// Contains all logic needed to parse data from a pokemon Gold/Silver sav file. /// /// See information available here for a detailed explaination: /// http://bulbapedia.bulbagarden.net/wiki/Save_data_structure_in_Generation_II /// http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_in_Generation_II /// </summary> private SaveFileModel Deserialize() { var sav = new SaveFileModel(); _breader.Seek(0x2000, SeekOrigin.Begin); sav.Options = _breader.ReadUInt64(); _breader.Seek(0x2009, SeekOrigin.Begin); sav.PlayerTrainerID = _breader.ReadUInt16(); _breader.Seek(0x200B, SeekOrigin.Begin); sav.PlayerName = _breader.ReadString(11, _charset); _breader.Seek(0x2021, SeekOrigin.Begin); sav.RivalName = _breader.ReadString(11, _charset); _breader.Seek(0x2037, SeekOrigin.Begin); sav.Daylightsavings = (_breader.ReadByte() & 0x80) == 1; _breader.Seek(0x2053, SeekOrigin.Begin); sav.TimePlayed = _breader.ReadUInt32(); _breader.Seek(0x206B, SeekOrigin.Begin); sav.Playerpalette = _breader.ReadByte(); _breader.Seek(0x23DB, SeekOrigin.Begin); sav.Money = _breader.ReadUInt24(); _breader.Seek(0x23E4, SeekOrigin.Begin); sav.JohtoBadges = _breader.ReadByte(); var arr = new BitArray(new[] { sav.JohtoBadges }); sav.JohtoBadges = (byte)arr.Cast <bool>().Count(b => b); _breader.Seek(0x23E6, SeekOrigin.Begin); sav.TMpocket = ParseTMPocket(); _breader.Seek(0x241F, SeekOrigin.Begin); sav.PocketItemList = ParseItemList(20); _breader.Seek(0x2449, SeekOrigin.Begin); sav.PocketKeyItemList = ParseItemList(26, true); _breader.Seek(0x2464, SeekOrigin.Begin); sav.PocketBallItemList = ParseItemList(12); _breader.Seek(0x247E, SeekOrigin.Begin); sav.PCItemList = ParseItemList(50); _breader.Seek(0x2724, SeekOrigin.Begin); sav.CurrentPCBoxNumber = _breader.ReadByte(); // Boxes _breader.Seek(0x2727, SeekOrigin.Begin); sav.PCBoxNames = new string[14]; for (var i = 0; i < 14; i++) { sav.PCBoxNames[i] = _breader.ReadString(9, _charset); } // Team _breader.Seek(0x288A, SeekOrigin.Begin); sav.TeamPokemonList = ParsePokeList(true, 6); // Pokedex _breader.Seek(0x2A4C, SeekOrigin.Begin); sav.PokedexOwned = new bool[32 * 8]; var pokedex = _breader.ReadBytes(32); arr = new BitArray(pokedex); arr.CopyTo(sav.PokedexOwned, 0); _breader.Seek(0x2A6C, SeekOrigin.Begin); sav.PokedexSeen = new bool[32 * 8]; pokedex = _breader.ReadBytes(32); arr = new BitArray(pokedex); arr.CopyTo(sav.PokedexSeen, 0); // Current Box List _breader.Seek(0x2D6C, SeekOrigin.Begin); sav.CurrentBoxPokemonlist = ParsePokeList(false, 20); // GET 1-7 boxes sav.Boxes = new PokeList[14]; for (var i = 0; i < 7; i++) { _breader.Seek(0x4000 + 0x450 * i, SeekOrigin.Begin); sav.Boxes[i] = ParsePokeList(false, 20); } // GET 8-14 boxes for (var i = 7; i < 14; i++) { _breader.Seek(0x6000 + 0x450 * (i - 7), SeekOrigin.Begin); sav.Boxes[i] = ParsePokeList(false, 20); } // Checksum 0x2009 - 0x2D68 _breader.Seek(0x2D69, SeekOrigin.Begin); sav.Checksum1 = _breader.ReadUInt16LittleEndian(); // Calculate checksum _breader.Seek(0x2009, SeekOrigin.Begin); ushort checksum = 0; while (_breader.Position <= 0x2D68) { checksum += _breader.ReadByte(); } if (checksum != sav.Checksum1) { throw new InvalidDataException("Checksum doesn't match. Data possibly corrupt."); } return(sav); }
/// <summary> /// creates a temporary save until we get full load/save management done. /// </summary> public static SaveGame CreateTempSave() { var dataModel = new SaveFileModel { PlayerData = new PlayerModel(), GameMode = "TestGM", Items = new[] { new InventoryItemModel { Amount = 2, Id = "Potion" } }, Pokedexes = new[] { new PokedexSaveModel { PokedexId = "National", Entries = new[] { new PokedexEntrySaveModel { EntryType = PokedexEntryType.Caught, Forms = new[] { "Default", "Shiny" }, Id = "Bulbasaur" } } } }, Pokemon = new[] { new PokemonSaveModel { Id = "Charizard", HP = 1, IVs = new PokemonStatSetModel { HP = 21, Atk = 20, Def = 11, SpAtk = 15, SpDef = 30, Speed = 1 }, EVs = new PokemonStatSetModel { HP = 50, Atk = 255, Def = 128, SpAtk = 255, SpDef = 255, Speed = 0 }, Experience = 10000 }, new PokemonSaveModel { Id = "Bulbasaur", HP = 5, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } }, new PokemonSaveModel { Id = "Charizard", HP = 12, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 }, IsShiny = true }, new PokemonSaveModel { Id = "Bulbasaur", HP = 2, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } }, new PokemonSaveModel { Id = "Bulbasaur", HP = 11, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 }, IsShiny = true }, new PokemonSaveModel { Id = "Bulbasaur", HP = 8, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } } } }; return new SaveGame(dataModel); }
/// <summary> /// creates a temporary save until we get full load/save management done. /// </summary> public static SaveGame CreateTempSave() { var dataModel = new SaveFileModel { PlayerData = new PlayerModel(), GameMode = "TestGM", Items = new[] { new InventoryItemModel { Amount = 2, Id = "Potion" } }, Pokedexes = new[] { new PokedexSaveModel { PokedexId = "National", Entries = new[] { new PokedexEntrySaveModel { EntryType = PokedexEntryType.Caught, Forms = new[] { "Default", "Shiny" }, Id = "Bulbasaur" } } } }, Pokemon = new[] { new PokemonSaveModel { Id = "Charizard", HP = 1, IVs = new PokemonStatSetModel { HP = 21, Atk = 20, Def = 11, SpAtk = 15, SpDef = 30, Speed = 1 }, EVs = new PokemonStatSetModel { HP = 50, Atk = 255, Def = 128, SpAtk = 255, SpDef = 255, Speed = 0 }, Experience = 10000 }, new PokemonSaveModel { Id = "Bulbasaur", HP = 5, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } }, new PokemonSaveModel { Id = "Charizard", HP = 12, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 }, IsShiny = true }, new PokemonSaveModel { Id = "Bulbasaur", HP = 2, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } }, new PokemonSaveModel { Id = "Bulbasaur", HP = 11, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 }, IsShiny = true }, new PokemonSaveModel { Id = "Bulbasaur", HP = 8, IVs = new PokemonStatSetModel { HP = 10 }, EVs = new PokemonStatSetModel { HP = 0 } } } }; return(new SaveGame(dataModel)); }
public JsonResult SaveEmailToServer(SaveEmailModel model) { try { _log.Debug("SaveEmailToServer Start"); var fileName = CommonHelper.DecodeUrl(model.FileName); var tokenId = CommonHelper.GetToken(model.TokenId); var docId = CommonHelper.DecodeUrl(model.Docid); var ewsUrl = CommonHelper.DecodeUrl(model.EwsUrl); var ewsId = CommonHelper.DecodeUrl(model.EwsId); var ewsToken = CommonHelper.DecodeUrl(model.EwsToken); _log.Debug($"SaveEmailToServer: {fileName}"); _log.Debug($"SaveEmailToServer ExchangeService Start, EWSUrl: {ewsUrl}"); ExchangeService service = new ExchangeService(); service.Url = new Uri(ewsUrl); service.Credentials = new OAuthCredentials("Bearer " + ewsToken); service.Timeout = 360 * 1000; List <ItemId> itemIds = new List <ItemId>() { ewsId }; var items = service.BindToItems(itemIds, new PropertySet()); var itemMessage = items.FirstOrDefault().Item; itemMessage.Load(new PropertySet(ItemSchema.MimeContent)); MimeContent mimconm = itemMessage.MimeContent; _log.Debug($"SaveEmailToServer ExchangeService End"); _log.Debug($"SaveEmailToServer UploadFile Start"); SaveFileModel uploadModel = new SaveFileModel() { Base64Str = mimconm.Content, FileName = fileName, Docid = docId, TokenId = tokenId, Ondup = model.Ondup }; IAS7APIHelper helper = new AS7APIHelper(); var uploadFileRes = helper.UploadFile(uploadModel); _log.Debug($"SaveEmailToServer UploadFile End"); if (uploadFileRes.ErrorCode == 403002039) { uploadFileRes.FileName = helper.GetSuggestFileName(tokenId, docId, fileName); } _log.Debug("SaveEmailToServer End"); return(Json(new JsonModel { Success = true, StatusCode = uploadFileRes.ErrorCode, Data = JsonConvert.SerializeObject(uploadFileRes) })); } catch (Exception ex) { _log.Debug($"SaveEmailToServer Exception: {ex.Message}"); return(Json(new JsonModel { Success = false, Message = ex.Message })); } }
public async Task <SaveFileResponse> SaveChunk(SaveFileModel model) { var path = CreateTempFileLocation(model.FileName); return(await Save(path, model)); }
private void Serialize(SaveFileModel save) { _bwriter.Seek(0x2000, SeekOrigin.Begin); _bwriter.WriteUInt64(save.Options); _bwriter.Seek(0x2009, SeekOrigin.Begin); _bwriter.WriteUInt16((ushort)save.PlayerTrainerID); _bwriter.Seek(0x200B, SeekOrigin.Begin); _bwriter.WriteString(save.PlayerName, 11, _charset); _bwriter.Seek(0x2021, SeekOrigin.Begin); _bwriter.WriteString(save.RivalName, 11, _charset); _bwriter.Seek(0x2037, SeekOrigin.Begin); _bwriter.Write((byte)(save.Daylightsavings ? 0x80 : 0)); _bwriter.Seek(0x2053, SeekOrigin.Begin); _bwriter.WriteUInt32(save.TimePlayed); _bwriter.Seek(0x206B, SeekOrigin.Begin); _bwriter.Write(save.Playerpalette); _bwriter.Seek(0x23DB, SeekOrigin.Begin); _bwriter.WriteUInt24(save.Money); _bwriter.Seek(0x23E4, SeekOrigin.Begin); // Johnto Badges var arr = new BitArray(Enumerable.Repeat(true, save.JohtoBadges).ToArray()); var buffer = new byte[1]; arr.CopyTo(buffer, 0); _bwriter.Write(buffer[0]); _bwriter.Seek(0x23E6, SeekOrigin.Begin); SerializeTmPocket(save.TMpocket); _bwriter.Seek(0x241F, SeekOrigin.Begin); SerializeItemList(20, save.PocketItemList); _bwriter.Seek(0x2449, SeekOrigin.Begin); SerializeItemList(26, save.PocketKeyItemList, true); _bwriter.Seek(0x2464, SeekOrigin.Begin); SerializeItemList(12, save.PocketBallItemList); _bwriter.Seek(0x247E, SeekOrigin.Begin); SerializeItemList(50, save.PCItemList); _bwriter.Seek(0x2724, SeekOrigin.Begin); _bwriter.Write(save.CurrentPCBoxNumber); // Boxes _bwriter.Seek(0x2727, SeekOrigin.Begin); for (var i = 0; i < 14; i++) { _bwriter.WriteString(save.PCBoxNames[i], 9, _charset); } // Team _bwriter.Seek(0x288A, SeekOrigin.Begin); SerializePokeList(true, 6, save.TeamPokemonList); // Pokedex _bwriter.Seek(0x2A4C, SeekOrigin.Begin); arr = new BitArray(save.PokedexOwned); buffer = new byte[32]; arr.CopyTo(buffer, 0); foreach (var b in buffer) { _bwriter.Write(b); } _bwriter.Seek(0x2A6C, SeekOrigin.Begin); arr = new BitArray(save.PokedexSeen); buffer = new byte[32]; arr.CopyTo(buffer, 0); foreach (var b in buffer) { _bwriter.Write(b); } // Current Box List _bwriter.Seek(0x2D6C, SeekOrigin.Begin); SerializePokeList(false, 20, save.CurrentBoxPokemonlist); // GET 1-7 boxes for (var i = 0; i < 7; i++) { _bwriter.Seek(0x4000 + 0x450 * i, SeekOrigin.Begin); SerializePokeList(false, 20, save.Boxes[i]); } // GET 8-14 boxes for (var i = 7; i < 14; i++) { _bwriter.Seek(0x6000 + 0x450 * (i - 7), SeekOrigin.Begin); SerializePokeList(false, 20, save.Boxes[i]); } // Calculate checksum ushort checksum = 0; _breader.Seek(0x2009, SeekOrigin.Begin); while (_breader.Position <= 0x2D68) { checksum += _breader.ReadByte(); } // Write Checksum 1 (0x2009 - 0x2D68) _bwriter.Seek(0x2D69, SeekOrigin.Begin); _bwriter.WriteInt16LittleEndian(checksum); }