bool CanCheckInItem(CheckInTarget target, ProjectItemBase item) { bool canCheckInMaster = IsCorrectlyLoaded && item.If(x => x.IsCheckOut || x.IsNew).ReturnSuccess(); if (target == CheckInTarget.Master) { return(canCheckInMaster); } return(canCheckInMaster && item.If(x => x.MergeState == MergeState.Success).ReturnSuccess()); }
bool CanCheckIn(CheckInTarget target) { if (!IsCorrectlyLoaded) { return(false); } if (IsSingleSelection) { return(CanCheckInItem(target, SelectedItem)); } return(SelectedItems.All(item => CanCheckInItem(target, item))); }
string GetCheckInPath(CheckInTarget target, string selectedItemPath) { switch (target) { case CheckInTarget.Master: return(selectedItemPath); case CheckInTarget.Port: MergeHelper helper = new MergeHelper(this); return(helper.GetFilePathForBranch(selectedItemPath, CurrentBranch)); default: throw new ArgumentException("target"); } }
void CheckIn(CheckInTarget target) { if (IsSingleSelection) { Logger.AddInfo("CheckInCommand. Start single check in."); var model = new CheckInViewModel(GetCheckInPath(target, SelectedItem.Path), false); MessageResult result = GetService <IDialogService>(Checkinwindow).ShowDialog(MessageButton.OKCancel, "Check in", model); if (result == MessageResult.OK) { var helper = new MergeHelper(this); helper.CheckIn(new CheckInViewModel(SelectedItem.Path, model.StaysChecked) { Comment = model.Comment }, GetCheckInBranch(target), SelectedItem.IsNew); SelectedItem.IsChecked = model.StaysChecked; } Logger.AddInfo("CheckInCommand. End single check in."); } else { Logger.AddInfo("CheckInCommand. Start multiple check in."); var model = new CheckInViewModel(GetCheckInPath(target, Solution.Path), false); var result = GetService <IDialogService>(MultipleCheckinWindow).ShowDialog(MessageButton.OKCancel, "Multiple Check in", model); if (result == MessageResult.OK) { var helper = new MergeHelper(this); foreach (var item in SelectedItems) { var currentFileModel = new CheckInViewModel(item.Path, model.StaysChecked) { Comment = model.Comment }; bool success = helper.CheckIn(currentFileModel, GetCheckInBranch(target), item.IsNew); item.IsChecked = success && model.StaysChecked; } } Logger.AddInfo("CheckInCommand. End multiple check in."); } ReloadProject(); }
DXVcsBranch GetCheckInBranch(CheckInTarget target) { return(target == CheckInTarget.Master ? MasterBranch : CurrentBranch); }