public async Task <ActionResult> Index(Cart cart) { Cart c = cart; ViewBag.Count = c.Issues.Count; List <string> versions = new List <string>(); List <string> trType = new List <string>(); List <Tuple <string, string> > resolutions = new List <Tuple <string, string> >(); try { versions = await jRepository.GetVersionsAsync("PVINE"); trType = await jRepository.GetAvailableStatusesAsync(cart.Issues.First().Key); resolutions = await jRepository.GetResolutionsAsync(); } catch (Exception ex) { var exc = ex.Message; return(RedirectToAction("Oops", "Error")); } TransactionSettingsViewModel settings = new TransactionSettingsViewModel(); var verList = new List <SelectListItem>(); foreach (var version in versions) { verList.Add(new SelectListItem { Value = version, Text = version }); } settings.Versions = verList; var typeList = new List <SelectListItem>(); foreach (var type in trType) { typeList.Add(new SelectListItem { Value = type, Text = type }); } settings.Types = typeList; var resList = new List <SelectListItem>(); foreach (var resolution in resolutions) { resList.Add(new SelectListItem { Value = resolution.Item1, Text = resolution.Item2 }); } settings.Resolutions = resList; var locations = new List <SelectListItem>(); locations.Add(new SelectListItem { Value = "QA", Text = "QA" }); locations.Add(new SelectListItem { Value = "Dev54", Text = "Dev54" }); locations.Add(new SelectListItem { Value = "Stage", Text = "Stage" }); locations.Add(new SelectListItem { Value = "Live", Text = "Live" }); settings.CodeLocations = locations; return(View(settings)); }
public async Task <ActionResult> Transact(Cart cart, TransactionSettingsViewModel settings) { DateTime dateTime = DateTime.Now; foreach (var i in cart.Issues) { var issue = jRepository.Issues.Where(x => x.Key == i.Key).FirstOrDefault(); if (!settings.CodeLocation.Equals(string.Empty)) { if (!issue.CustomFields.Contains(issue.CustomFields["Code location"])) { issue.CustomFields.Add("Code location", settings.CodeLocation); } else { issue.CustomFields["Code location"].Values = new string[] { settings.CodeLocation } }; } issue.Resolution = new Atlassian.Jira.IssueResolution(settings.Resolution); switch (settings.Type.ToLower()) { case "tested on dev54": issue.Assignee = "godkot"; break; case "tested on satge": issue.Assignee = "godkot"; break; default: issue.Assignee = issue.Reporter; break; } await issue.AddCommentAsync(settings.Comment); await issue.WorkflowTransitionAsync(settings.Type); await issue.SaveChangesAsync(); dbRepository.SaveTransaction(new Transaction { Id = 0, Date = dateTime, Key = issue.Key.Value, Summary = issue.Summary, StatusFrom = i.Status, StatusTo = settings.Type, ResolutionFrom = issue.Resolution.Id, ResolutionTo = settings.Resolution, AssigneeFrom = issue.Assignee, AssigneeTo = issue.Reporter, Reporter = issue.Reporter, }); } cart.Issues.Clear(); return(RedirectToAction("History")); }