/// <summary> /// Merge Changeset. /// </summary> public JsonResult GetChangesets(JsonMergeViewModel model) { try { return(new JsonDotNetResult(_sourceRepository.GetJsonChangesetsByWorkItemState(model).OrderBy(o => o.id).ToList())); } catch (BaseException ex) { _logger.Log(ex); } catch (Exception ex) { _logger.Log(ex); } return(new JsonDotNetResult(null)); }
public JsonResult GetMergeViewModel(JsonMergeRequest request) { try { var model = new JsonMergeViewModel(request) { projects = _teamRepository.GetJsonProjects().ToList(), project = _teamRepository.GetJsonProject(request.project.name), mergeMethods = _trackingRepository.GetJsonMergeMethods(request.project, request.environment), getWorkItemsPath = Url.Action("GetWorkItems", "Tracking"), getChangesetsPath = Url.Action("GetChangesets", "Source"), getMergeCandidatesPath = Url.Action("GetMergeCandidates", "Source"), getMigrationScriptsPath = Url.Action("GetWorkItemsWithMigrationScripts", "Tracking"), commitChangesetPath = Url.Action("CommitChangeset", "Source"), mergeChangesetPath = Url.Action("MergeChangeset", "Source"), buildEnvironmentPath = Url.Action("BuildMergeEnvironment", "Build") }; model.mergeMethod = model.mergeMethods != null?model.mergeMethods.FirstOrDefault(m => m.selected) : null; if (model.mergeMethod != null && model.mergeMethod.options.Any()) { model.mergeMethodOption = model.mergeMethod.options.FirstOrDefault(m => m.selected); if (model.mergeMethodOption != null) { model.mergeMethodOption.project = new JsonProject((model.project != null ? model.projects.ToList().Find(p => string.Compare(p.name, model.project.name, StringComparison.OrdinalIgnoreCase) == 0) : null) ?? model.projects.ToList().Find(p => p.isDefault) ?? model.projects.FirstOrDefault()); } } return(new JsonDotNetResult(model)); } catch (BaseException ex) { _logger.Log(ex); } catch (Exception ex) { _logger.Log(ex); } return(new JsonDotNetResult(null)); }
/// <summary> /// gets changesets for all work items of a specified state /// </summary> /// <param name="model"></param> /// <returns></returns> public IEnumerable <JsonMergeCandidateChangeset> GetJsonChangesetsByWorkItemState(JsonMergeViewModel model) { var result = BLL.Source.GetChangesetsByWorkItemState(SourceDataAccess, (Project)model.mergeMethodOption.project, model.mergeMethodOption.methodValue, (MergeEnvironment)model.environment); return(result != null?result.Select(c => new JsonMergeCandidateChangeset(c, model)) : null); }