Example #1
0
        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());
        }
Example #2
0
 bool CanCheckIn(CheckInTarget target)
 {
     if (!IsCorrectlyLoaded)
     {
         return(false);
     }
     if (IsSingleSelection)
     {
         return(CanCheckInItem(target, SelectedItem));
     }
     return(SelectedItems.All(item => CanCheckInItem(target, item)));
 }
Example #3
0
        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");
            }
        }
Example #4
0
        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();
        }
Example #5
0
 DXVcsBranch GetCheckInBranch(CheckInTarget target)
 {
     return(target == CheckInTarget.Master ? MasterBranch : CurrentBranch);
 }