protected Classes.GitBatch WriteFeatureBranchGit(RepositoryVM repo, string startingFolder, string branchName) { var mainBat = startingFolder + @"\PullForFeatureBranch.bat"; if (System.IO.File.Exists(mainBat)) { System.IO.File.Delete(mainBat); } // see if folder for REPO is there and if not, pull it - if it is recheck out master and release var bat = new Classes.GitBatch(mainBat) { Redirect = true, RedirectError = $@"{startingFolder.Replace(@"\\", @"\")}\ErrorFB.txt", RedirectFile = $@"{startingFolder.Replace(@"\\", @"\")}\OutputFB.txt" }; bat.AddLine($"echo start"); var theFile = repo.Name; var featurePrefix = _settings.Setting.GetSection("FeatureBranchPrefix").Value ?? "feature/"; var releasePrefix = _settings.Setting.GetSection("ReleaseBranchName").Value ?? "release"; var masterPrefix = _settings.Setting.GetSection("MasterBranchName").Value ?? "master"; var featureFile = $"{featurePrefix}{branchName}"; if (featureFile.Length > 60) { featureFile = featureFile.Substring(0, 60); } bat.AddLine($"echo Working on '{theFile}'"); bat.AddCD($@"{startingFolder}\{theFile}"); bat.AddReset(); if (repo.OffRelease) { bat.AddCheckout(releasePrefix, $"origin/{releasePrefix}"); bat.AddLine($"git checkout -b {featureFile} {releasePrefix}"); } else { bat.AddCheckout(masterPrefix, $"origin/{masterPrefix}"); bat.AddLine($"git checkout -b {featureFile} {masterPrefix}"); } bat.AddLine($"git push -u origin {featureFile}"); bat.AddCD(startingFolder); bat.Write(); return(bat); }
public IActionResult GetRepos([DataSourceRequest] DataSourceRequest request, string projectName) { var startingFolder = string.Empty; List <RepositoryVM> results = new List <RepositoryVM>(); try { CreateStartingFolder(ref startingFolder); var vsts = new Classes.VSTS.Vsts(HttpContext.Session.GetString(Session.TOKEN)); var repos = vsts.GetRepos(projectName); var items = repos.Repositories.OrderBy(t => t.Name).ToList(); Parallel.ForEach(items, new ParallelOptions { MaxDegreeOfParallelism = 1 }, item => { var toAdd = new RepositoryVM() { Guid = item.Guid, Name = item.Name, Url = item.RemoteUrl, DefaultBranch = item.DefaultBranch, DirectoryOnDisk = false }; if (System.IO.Directory.Exists(startingFolder)) { var projectStartingFolder = startingFolder; CreateStartingProjectFolder(ref projectStartingFolder); if (System.IO.Directory.Exists(startingFolder)) { toAdd.DirectoryOnDisk = System.IO.Directory.Exists(projectStartingFolder + @"\" + item.Name); } } results.Add(toAdd); }); } catch (System.Exception foo) { System.Diagnostics.Debug.WriteLine($"Get Repos: {foo.Message}"); } return(Json(results.ToDataSourceResult(request))); }
public ActionResult Borrow() { BorrowingVM borrowingVM = new BorrowingVM(); RepositoryVM repositoryVM = new RepositoryVM(); var repositories = repositoryVM.Get_list(); var list_book = Session["Zamowienie"] as IEnumerable <Biblioteka.Models.Book>; var userId = (Int32)(Session["adminID"]); if (list_book != null) { DB db = new DB(); Longlife l = db.Longlifes.Where(x => x.LonglifeID == 1).FirstOrDefault(); int days = l.longlife; foreach (var item in list_book) { Repository repo_book = repositories.Where(a => a.RepositoryID == item.Repository.RepositoryID).FirstOrDefault(); if (repo_book.Amount != 0) { Borrowing b = new Borrowing { ReaderID = userId, Borrow_date = DateTime.Now, BookID = item.BookID, PenaltyID = 1, Returned = false, QueueID = 0 }; b.Return_date = b.Borrow_date.AddDays(days); borrowingVM.Dodaj(b); repositoryVM.Minus_amount(repo_book); Session["Zamowienie"] = null; } else { return(RedirectToAction("Borrow_failed"));//trzeba zablokować możliwość wypożyczenia gdy nie jest dostępna } } return(View("Borrow_success")); } return(View()); }
public JsonResult MakeFeatureBranch([DataSourceRequest] DataSourceRequest dsRequest, RepositoryVM repo) { try { if (repo != null && ModelState.IsValid) { // get work itm Classes.VSTS.VstsWorkItem pbi = GetWorkItem(repo.PBI); if (pbi != null) { if (pbi.StatusCode != System.Net.HttpStatusCode.OK) { return(Json(new { result = false, message = "Invalid Work Item" })); } else { string branchName = string.Empty; #region Set Branch Name to start if (!string.IsNullOrEmpty(repo.OverridingName)) // We use this name { branchName = repo.OverridingName.Replace(" ", "_"); } else { branchName = pbi.Fields.Title; } #endregion branchName = pbi.Id + "_" + ClearBatchName(branchName); // Clear model so it will be considered "dirty" if called again repo.PBI = string.Empty; repo.OverridingName = string.Empty; #region Write Bat File var startingFolder = string.Empty; CreateStartingFolder(ref startingFolder); if (System.IO.Directory.Exists(startingFolder)) { CreateStartingProjectFolder(ref startingFolder); if (System.IO.Directory.Exists(startingFolder)) { var bat = WriteFeatureBranchGit(repo, startingFolder, branchName); try { bat.GitRun(startingFolder, HttpContext.Session.GetString(Session.USER), HttpContext.Session.GetString(Session.GIT)); return(Json(new JsonMessage(true, "Feature Branch Created"))); } catch (System.Exception ex) { return(Json(new JsonMessage(false, ex.Message))); } } else { return(Json(new JsonMessage(false, $"Unable to find starting folder {startingFolder}"))); } } else { return(Json(new JsonMessage(false, $"Unable to find starting folder {startingFolder}"))); } #endregion } } else // create branch based on name { string branchName = string.Empty; if (!string.IsNullOrEmpty(repo.OverridingName)) // We use this name { branchName = repo.OverridingName.Replace(" ", "_"); } else { return(Json(new JsonMessage(false, "Empty branch name"))); } branchName = ClearBatchName(branchName); repo.PBI = string.Empty; repo.OverridingName = string.Empty; #region Write Bat File var startingFolder = string.Empty; CreateStartingFolder(ref startingFolder); if (System.IO.Directory.Exists(startingFolder)) { CreateStartingProjectFolder(ref startingFolder); if (System.IO.Directory.Exists(startingFolder)) { var bat = WriteFeatureBranchGit(repo, startingFolder, branchName); try { bat.GitRun(startingFolder, HttpContext.Session.GetString(Session.USER), HttpContext.Session.GetString(Session.GIT)); return(Json(new JsonMessage(true, "Feature Branch Created"))); } catch (System.Exception ex) { return(Json(new JsonMessage(false, ex.Message))); } } else { return(Json(new JsonMessage(false, $"Unable to find starting folder {startingFolder}"))); } } else { return(Json(new JsonMessage(false, $"Unable to find starting folder {startingFolder}"))); } #endregion } } else { return(Json(new JsonMessage(false, "Invalid Model State"))); } } catch (System.Exception ex) { return(Json(new JsonMessage(false, ex.Message))); } }