Beispiel #1
0
 private void EditTextFiles(FileManager fileManager, RaceFormViewModel race)
 {
     if (Assets == null || Assets.Count == 0)
     {
         InitializeAssets();
     }
 }
        public ActionResult Manipulate(RaceFormViewModel viewmodel)
        {
            var  fileManager = new FileManager(Server);
            Race race;

            if (!ModelState.IsValid)
            {
                var raceClassificationList = raceClassificationRepository.GetRaceClassifications();
                viewmodel = RaceFormViewModel.RaceFormViewModelValidate(viewmodel, raceClassificationList, fileManager);
                ModelState.AddModelError("NotValidModel", "Failed!");
                return(View("Manipulate", viewmodel));
            }

            if (viewmodel.ID == 0)
            {
                race = Race.RaceCreation(viewmodel, fileManager);
                race.InitializeAssets();
                raceRepository.Add(race);
            }
            else
            {
                race = raceRepository.GetRace(viewmodel.ID);
                race.RaceUpdate(viewmodel, fileManager);
                race.UpdateAssets(fileManager, viewmodel);
                unitOfWork.Modify(race);
            }

            unitOfWork.Complete();
            race.SaveAssets(fileManager, viewmodel);

            return(RedirectToAction("Index"));
        }
        //Get
        public ActionResult Manipulate(int?id)
        {
            var fileManager = new FileManager(Server);

            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var planets = planetRepository.GetPlanetsRaw();
            var raceClassificationList = raceClassificationRepository.GetRaceClassifications();

            if (id.Value == 0)
            {
                var viewModel = RaceFormViewModel.RaceFormViewModelCreationNew(planets, raceClassificationList, fileManager);

                return(View(viewModel));
            }
            else
            {
                var race = raceRepository.GetRace(id.Value);

                var viewModel = RaceFormViewModel.RaceFormViewModelEdit(race, planets, raceClassificationList, fileManager);

                return(View(viewModel));
            }
        }
Beispiel #4
0
 private Race(RaceFormViewModel race, List <RaceHabitat> raceHabitats, byte[] avatar)
 {
     RaceID               = race.ID;
     Name                 = race.Name;
     AverageHeight        = race.AverageHeight;
     RaceClassificationID = race.RaceClassificationID;
     RaceHabitats         = raceHabitats;
     Avatar               = avatar;
     Assets               = new List <RaceFile>();
 }
Beispiel #5
0
        public static Race RaceCreation(RaceFormViewModel race, FileManager fileManager)
        {
            List <RaceHabitat> raceHabitats = new List <RaceHabitat>();

            byte[] avatar = race.GetUploadedAvatar(fileManager);

            race.Planets
            .Where(p => p.IsAssigned == true).ToList()
            .ForEach(p => raceHabitats.Add(RaceHabitat.RaceHabitatCreate(p.ID, race.ID)));

            return(new Race(race, raceHabitats, avatar));
        }
Beispiel #6
0
 private void RaceUpdate(RaceFormViewModel race, List <RaceHabitat> raceHabitats, byte[] avatar)
 {
     RaceID               = race.ID;
     Name                 = race.Name;
     AverageHeight        = race.AverageHeight;
     RaceClassificationID = race.RaceClassificationID;
     RaceHabitats         = raceHabitats;
     Avatar               = avatar;
     if (race.Assets != null && race.Assets.Count > 0)
     {
         Assets = race.Assets;
     }
 }
Beispiel #7
0
        public void SaveAssets(FileManager filemanager, RaceFormViewModel viewModel)
        {
            var texts = Assets.Where(a => a.FilePath.FileType == FileType.Text).ToList();

            filemanager.SaveTextFile(texts[0], viewModel.Details);
        }
Beispiel #8
0
 public void UpdateAssets(FileManager fileManager, RaceFormViewModel race)
 {
     EditTextFiles(fileManager, race);
 }