示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#5
0
        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));
        }
示例#6
0
        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);
 }
示例#8
0
        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);
        }
示例#9
0
        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);
        }