public JsonResponse GetUploadBuildDetails() { var fileContent = Request.Files[0]; if (fileContent == null || fileContent.ContentLength == 0) { return(new JsonResponse(false, "File was not added into request!")); } BuildOrderInfo uploadBuild = null; BuildOrder buildEntity = null; try { using (var inputStream = new StreamReader(fileContent.InputStream)) { var jsonReader = new JsonTextReader(inputStream); var ser = new JsonSerializer(); uploadBuild = ser.Deserialize <BuildOrderInfo>(jsonReader); } buildEntity = ConvertBuildInfoToDomainModel(uploadBuild); var response = _service.GetBuildByName(buildEntity.Name); if (response.Result != null) { return(new JsonResponse(false, "Build order with name " + buildEntity.Name + " already exists!")); } } catch (Exception ex) { return(new JsonResponse(false, "File format is not valid!")); } return(new JsonResponse(buildEntity)); }
private static BuildOrderInfo ConstructSpeedlingExpandBuild() { var bo = new BuildOrderInfo { Name = "Speedling Expand", Description = "Safe zerg build order", Race = "Zerg", VsRace = "NotDefined", SC2VersionID = "2.0.5", AddonID = "WOL" }; bo.BuildOrderItems = new List <string> { "Drone", "Drone", "Drone", "Overlord", "Drone", "Drone", "Drone", "Drone", "Drone", "Extractor", "Drone", "SpawningPool", "GasDrone", "GasDrone", "GasDrone", "Drone", "Drone", "Drone", "Overlord", "MetabolicBoost", "Queen", "Zergling", "Drone", "Hatchery", "Drone", "Queen", }; return(bo); }
public static BuildOrderEntity Convert(BuildOrderInfo item) { var result = new BuildOrderEntity { Name = item.Name, Description = item.Description, Race = (RaceEnum)Enum.Parse(typeof(RaceEnum), item.Race), VsRace = (RaceEnum)Enum.Parse(typeof(RaceEnum), item.VsRace), SC2VersionID = item.SC2VersionID, AddonID = item.AddonID }; foreach (var buildItem in item.BuildOrderItems) { result.BuildOrderItems.Add(buildItem); } return(result); }
public static BuildOrderInfo Convert(BuildOrderEntity buildOrder) { var result = new BuildOrderInfo { Name = buildOrder.Name, Description = buildOrder.Description, Race = buildOrder.Race.ToString(), VsRace = buildOrder.VsRace.ToString(), SC2VersionID = buildOrder.SC2VersionID, AddonID = buildOrder.AddonID }; foreach (var item in buildOrder.BuildOrderItems) { result.BuildOrderItems.Add(item); } return(result); }
public JsonResponse UploadBuildOrder(string userName) { if (User == null || User.UserData.UserName != userName) { return(new JsonResponse(false, "Unauthorized build order upload is not allowed!")); } var fileContent = Request.Files[0]; if (fileContent == null || fileContent.ContentLength == 0) { return(new JsonResponse(false, "File was not added into request!")); } BuildOrderInfo uploadBuild = null; BuildOrder buildEntity = null; try { using (var inputStream = new StreamReader(fileContent.InputStream)) { var jsonReader = new JsonTextReader(inputStream); var ser = new JsonSerializer(); uploadBuild = ser.Deserialize <BuildOrderInfo>(jsonReader); } buildEntity = ConvertBuildInfoToDomainModel(uploadBuild); } catch (Exception ex) { return(new JsonResponse(false, "File format is not valid!")); } var result = _service.AddBuildOrder(buildEntity); if (result.Success) { Log.Activity(HttpContext, string.Format("New build order [{0}] uploaded by {1}", buildEntity.Name, userName)); } return(new JsonResponse(result)); }
private BuildOrder ConvertBuildInfoToDomainModel(BuildOrderInfo buildInfo) { if (buildInfo == null) { return(null); } var buildOrder = new BuildOrder { AddedDate = DateTime.Now, Race = buildInfo.Race, VsRace = buildInfo.VsRace, Description = buildInfo.Description, Name = buildInfo.Name, SC2VersionID = buildInfo.SC2VersionID, OwnerUserID = User.UserData.ID, OwnerUserName = User.UserData.UserName, BuildItems = new List <string>(buildInfo.BuildOrderItems) }; return(buildOrder); }
public void SaveBuildOrder(BuildOrderInfo bo) { this.mStorageDataAccess.SaveToStorage(bo, BuildOrdersFolder, bo.Name); }
private static BuildOrderInfo ConstructKcdc1GateFEvsTerran() { var bo = new BuildOrderInfo() { Name = "Kcdc 1 Gate FE vs Terran", Description = "Cool protoss build order", Race = "Protoss", VsRace = "Terran", SC2VersionID = "2.0.5", AddonID = "WOL" }; bo.BuildOrderItems = new List <string> { "Probe", "Probe", "Probe", "Pylon", "Probe", "Probe", "Chronoboost", "Probe", "Chronoboost", "Probe", "Gateway", "Probe", "Probe", "Chronoboost", "Assimilator", "Probe", "Pylon", "Probe", "GasProbe", "GasProbe", "GasProbe", "Probe", "CyberneticsCore", "Probe", "Zealot", "Probe", "Pylon", "Probe", "Stalker", "WarpgateUpgrade", "Chronoboost", "Chronoboost", "Chronoboost", "Chronoboost", "Probe", "Probe", "Nexus", "Probe", "Gateway", "Probe", "Sentry", "Pylon", "Probe", "Forge", "Probe", "Zealot", "Assimilator", "Assimilator", "Probe", "Pylon", "SwitchToWarpgate" }; return(bo); }
private static BuildOrderInfo Construct111Build() { var bo = new BuildOrderInfo { Name = "1-1-1 Opener", Description = "Safe terran build order", Race = "Terran", VsRace = "NotDefined", SC2VersionID = "2.0.5", AddonID = "WOL" }; bo.BuildOrderItems = new List <string> { "SCV", "SCV", "SCV", "SCV", "SupplyDepot", "SCV", "SCV", "Barracks", "SCV", "Refinery", "SCV", "SCV", "GasScv", "GasScv", "GasScv", "OrbitalCommand", "Marine", "SupplyDepot", "Marine", "CallMule", "SCV", "Factory", "SCV", "Refinery", "ReactorOnBarracks", "SCV", "GasScv", "GasScv", "GasScv", "SCV", "SCV", "Starport", "Hellion", "SupplyDepot", "DoubleMarines", "SCV", "CallMule", "TechLabOnFactory", "SCV", "DoubleMarines", "SupplyDepot", "SCV", "LiftFactoryFromTechLab", "LandStarportOnTechLab", "DoubleMarines", "SCV", "Raven" }; return(bo); }