コード例 #1
0
        private List <string> RewriteConfig(HomeCreateVM model, string[] configList)
        {
            List <string> updateConfig = new List <string>();

            for (int i = 0; i < configList.Length; i++)
            {
                if (configList[i].Contains("OwnersEnabled"))
                {
                    updateConfig.Add(". OwnersEnabled=" + model.SelectedOwnerName);
                }
                else if (IsOwnerConfig(configList[i], model))
                {
                    updateConfig.Add(configList[i++]);
                    updateConfig.Add(TrimToImporterOnly(configList[i++]));

                    while (!string.IsNullOrWhiteSpace(configList[i]))
                    {
                        if (configList[i].Contains("FTP3rdparty"))
                        {
                            foreach (var key in model.SelectedOwner.FolderPathPairs.Keys)
                            {
                                if (configList[i].Contains(key))
                                {
                                    string path = string.Empty;
                                    foreach (var value in model.SelectedOwner.FolderPathPairs.GetValueOrDefault(key))
                                    {
                                        path += Path.Combine(model.BasePath, model.SelectedOwnerName, value) + ";";
                                    }
                                    path = (". . . " + key + "=" + path.Substring(0, path.Length - 1));
                                    updateConfig.Add(path);
                                    i++;
                                    break;
                                }
                            }
                        }
                        else if (configList[i].Contains(". . ImageChecker"))
                        {
                            while (!string.IsNullOrWhiteSpace(configList[i]))
                            {
                                updateConfig.Add("#" + configList[i++]);
                            }
                        }
                        else
                        {
                            updateConfig.Add(configList[i++]);
                        }
                        if (string.IsNullOrWhiteSpace(configList[i]))
                        {
                            updateConfig.Add(configList[i]);
                        }
                    }
                }
                else
                {
                    updateConfig.Add(configList[i]);
                }
            }
            return(updateConfig);
        }
コード例 #2
0
        public ActionResult Create()
        {
            HomeCreateVM model = new HomeCreateVM {
                Categories = _db.ProjectCategories.ToList()
            };

            return(View(model));
        }
コード例 #3
0
 private bool IsOwnerConfig(string line, HomeCreateVM model)
 {
     if (line.Equals(". " + model.SelectedOwnerName) || line.Equals(". " + model.SelectedOwner.ChildOwnerOf))
     {
         return(true);
     }
     return(false);
 }
コード例 #4
0
 public IActionResult Create(HomeCreateVM viewModel)
 {
     if (!ModelState.IsValid)
     {
         return(View(viewModel));
     }
     DataManager.CreateAnimal(viewModel);
     return(RedirectToAction(nameof(HomeController.Index)));
 }
コード例 #5
0
        public async Task <IActionResult> GetFolders(HomeCreateVM model)
        {
            await UpdateModel(model);

            if (!model.SelectedOwner.FolderPathPairs.Keys.Contains("SourceFolder"))
            {
                model.Logs.Add("Selected owner does not need initialize files. Just click 'Copy Files'.");
            }
            return(View("Create", model));
        }
コード例 #6
0
 internal static void CreateAnimal(HomeCreateVM viewModel)
 {
     dbAnimals.Add(new Animal
     {
         Id         = dbAnimals.Max(p => p.Id) + 1,
         Name       = viewModel.Name,
         AnimalType = viewModel.AnimalType,
         Temper     = viewModel.Temper,
         Created    = DateTime.Now
     });
 }
コード例 #7
0
        public async Task <IActionResult> ChangeBasePath(HomeCreateVM model)
        {
            await UpdateModel(model);

            var path = new TaskCompletionSource <string>();

            Thread thread = new Thread(() => BrowseFolder(path, model));

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            model.BasePath = await path.Task;
            return(View("Create", model));
        }
コード例 #8
0
        public async Task <IActionResult> Run(HomeCreateVM model)
        {
            await UpdateModel(model);

            if (System.IO.File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "original_app.config")))
            {
                DeleteAppConfig("app.config");
                RenameAppConfig("original_app.config", "app.config");
            }
            else
            {
                model.Logs.Add("You need first Updade Config.");
            }
            return(View("Create", model));
        }
コード例 #9
0
        public async Task <HomeCreateVM> CreateDirectories(HomeCreateVM model)
        {
            await Task.Run(() =>
            {
                foreach (var key in model.SelectedOwner.FolderPathPairs.Keys)
                {
                    foreach (var path in model.SelectedOwner.FolderPathPairs.GetValueOrDefault(key))
                    {
                        model.Logs.Add(CreateDirectory(Path.Combine(model.BasePath, model.SelectedOwnerName, path)));
                    }
                }
            });

            return(model);
        }
コード例 #10
0
        private void BrowseFolder(TaskCompletionSource <string> path, HomeCreateVM model)
        {
            var folder = new FolderBrowserDialog();

            folder.ShowNewFolderButton = true;
            DialogResult result = folder.ShowDialog();

            if (result == DialogResult.OK)
            {
                path.SetResult(folder.SelectedPath);
            }
            else
            {
                path.SetResult(model.BasePath);
            }
        }
コード例 #11
0
        private async Task CopySelectdFiles(HomeCreateVM model)
        {
            foreach (IFormFile file in model.Files)
            {
                var filePath = Path.Combine(model.BasePath, model.SelectedOwnerName, model.PathToSaveFile, file.FileName);

                if (file.Length > 0)
                {
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await file.CopyToAsync(stream);
                    }
                }
                model.Logs.Add(file.FileName + " - file save in " + Path.Combine(model.BasePath, model.SelectedOwnerName, model.PathToSaveFile));
            }
        }
コード例 #12
0
 private async Task UpdateModel(HomeCreateVM model)
 {
     if (model.Logs == null)
     {
         model.Logs = new List <string>();
     }
     await Task.Run(() =>
     {
         model.BasePath          = (model.BasePath == null) ? ownerData.BasePath : model.BasePath;
         model.OwnersList        = ownerData.GetOwners();
         model.SelectedOwnerName = (model.SelectedOwnerName == null) ? ownerData.SelectedOwner : model.SelectedOwnerName;
         model.SelectedOwner     = model.OwnersList.FirstOrDefault(o => o.Name == model.SelectedOwnerName);
         model.SelectedFolder    = (model.SelectedFolder == null) ? ownerData.SelectedFolder : model.SelectedFolder;
         model.FolderList        = model.SelectedOwner.QualityFolders;
     });
 }
コード例 #13
0
        public ActionResult Edit(int?id)
        {
            Project project = _db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }


            HomeCreateVM model = new HomeCreateVM {
                Project    = project,
                Categories = _db.ProjectCategories.ToList()
            };

            return(View(model));
        }
コード例 #14
0
        public async Task <IActionResult> UpdateConfig(HomeCreateVM model)
        {
            await UpdateModel(model);

            var appConfigFile = await ManageConfigFile.ParseAppConfigToStringArrayAsync();

            var updateConfig = RewriteConfig(model, appConfigFile);

            RenameAppConfig("app.config", "original_app.config");
            await SaveUpdatedAppConfig(updateConfig);

            model.Logs.Add("Config succesfully updated.");
            model.SelectFilesBtnClicked = true;
            ownerData.SelectedFolder    = null;

            return(View("Create", model));
        }
コード例 #15
0
        public async Task <IActionResult> Create()
        {
            var model = new HomeCreateVM()
            {
                Logs = new List <string>()
            };
            await Task.Run(() =>
            {
                model.SelectFilesBtnClicked = false;
                model.OwnersList            = ownerData.GetOwners();
                model.SelectedOwner         = model.OwnersList.First();
                model.FolderList            = model.SelectedOwner.QualityFolders;
                model.BasePath = ConfigurationManager.AppSettings["basePath"].ToString();
            });

            return(View(model));
        }
コード例 #16
0
        public async Task <IActionResult> CopyFiles(HomeCreateVM model)
        {
            await UpdateModel(model);

            if (model.BasePath == null)
            {
                model.Logs.Add("You must provide a base path!");
                return(View("Create", model));
            }
            try
            {
                List <string> sourceFolders = model.SelectedOwner.FolderPathPairs.GetValueOrDefault("SourceFolder");
                if (sourceFolders == null)
                {
                    model.SelectFilesBtnClicked = true;
                    model = await CreateDirectories(model);
                }
                else
                {
                    model.PathToSaveFile = model.SelectedFolder != null
                        ? sourceFolders.FirstOrDefault(s => s.Contains(model.SelectedFolder))
                        : model.PathToSaveFile = sourceFolders.FirstOrDefault();

                    if (model.Files != null)
                    {
                        model.SelectFilesBtnClicked = true;
                        model = await CreateDirectories(model);
                        await CopySelectdFiles(model);
                    }
                    else
                    {
                        model.Logs.Add("You need first choose starting files.");
                    }
                }
                ownerData.BasePath       = model.BasePath;
                ownerData.SelectedOwner  = model.SelectedOwnerName;
                ownerData.SelectedFolder = model.SelectedFolder;
            }
            catch (UnauthorizedAccessException)
            {
                model.Logs.Add("You don't have access in selected directory. Please change your base path.");
                return(View("Create", model));
            }
            return(View("Create", model));
        }
コード例 #17
0
        public ActionResult Edit(Project project)
        {
            if (_db.Projects.Any(p => (p.Id != project.Id) && (p.Name == project.Name)))
            {
                ModelState.AddModelError("Project.Name", project.Name + " adlı proyekte deyisiklik edə biməzsiniz");
            }
            if (ModelState.IsValid)
            {
                _db.Entry(project).State = System.Data.Entity.EntityState.Modified;
                _db.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }


            HomeCreateVM model = new HomeCreateVM
            {
                Project    = project,
                Categories = _db.ProjectCategories.ToList()
            };

            return(View(model));
        }
コード例 #18
0
        public ActionResult Create(Project project)
        {
            if (_db.Projects.Any(p => p.Name == project.Name))
            {
                ModelState.AddModelError("Project.Name", project.Name + " adlı proyekt artıq movcuddur");
            }

            if (ModelState.IsValid)
            {
                _db.Projects.Add(project);
                _db.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }

            HomeCreateVM model = new HomeCreateVM
            {
                Categories = _db.ProjectCategories.ToList(),
                Project    = project
            };

            return(View(model));
        }
コード例 #19
0
        public async Task <IActionResult> PostRoadHome(int roadId, HomeCreateVM homeCreate)
        {
            var roadFromRepo = await repository.GetEstateRoad(roadId);

            if (roadFromRepo == null)
            {
                return(NotFound("Road Not Found"));
            }
            var homeToCreate = mapper.Map <Home>(homeCreate);

            homeToCreate.RoadId = roadId;
            repository.Add(homeToCreate);
            var save = await repository.SaveChanges();

            if (!save)
            {
                throw new Exception();
            }
            var homeToReturn = mapper.Map <HomeListVM>(homeToCreate);

            return(CreatedAtRoute("GetHome", new { roadId = roadId, homeId = homeToCreate.RoadId }, homeToReturn));
        }