예제 #1
0
파일: Agenda.cs 프로젝트: ppetrov/Cchbc
        //public PermissionResult CanCancel(DateTime date)
        //{
        //	var visitDay = this.DataProvider.GetVisitDay(DateTime.Today);

        //	return PermissionResult.Allow;
        //}

        //public PermissionResult CanClose(Activity activity)
        //{
        //	if (activity == null) throw new ArgumentNullException(nameof(activity));

        //	// Check the day
        //	// Check the status
        //	// Check cancel reason
        //	// TODO : !!!

        //	return PermissionResult.Allow;
        //}

        public void Cancel(Activity activity, ActivityCancelReason cancelReason)
        {
            if (activity == null)
            {
                throw new ArgumentNullException(nameof(activity));
            }

            // TODO : !!!

            this.ActivityUpdated?.Invoke(this, new ActivityEventArgs(activity));
        }
예제 #2
0
파일: Agenda.cs 프로젝트: ppetrov/Cchbc
        //public PermissionResult CanCreate(Outlet outlet, ActivityType activityType)
        //{
        //	if (outlet == null)
        //	{
        //		return PermissionResult.Deny(@"MissingOutlet");
        //	}
        //	if (activityType == null)
        //	{
        //		return PermissionResult.Deny(@"MissingActivityType");
        //	}
        //	if (outlet.Id > 0 && activityType.Id > 0)
        //	{
        //		return PermissionResult.Confirm(@"Confirm activity type for this outlet?");
        //	}
        //	return PermissionResult.Allow;
        //}

        //public Activity Create(DataQueryContext context, Outlet outlet, ActivityType type, ActivityStatus status, DateTime date)
        //{
        //	if (context == null) throw new ArgumentNullException(nameof(context));
        //	if (type == null) throw new ArgumentNullException(nameof(type));
        //	if (status == null) throw new ArgumentNullException(nameof(status));
        //	if (outlet == null) throw new ArgumentNullException(nameof(outlet));

        //	var activity = new Activity(0, outlet, type, status, date, date, string.Empty);

        //	// Save activity to db
        //	var newActivity = this.DataProvider.Insert(context, activity);

        //	// Find item by outlet
        //	var agendaOutlet = default(AgendaOutlet);
        //	foreach (var o in this.Outlets)
        //	{
        //		if (o.Outlet == outlet)
        //		{
        //			agendaOutlet = o;
        //			break;
        //		}
        //	}
        //	// We don't have it
        //	if (agendaOutlet == null)
        //	{
        //		// Create it
        //		agendaOutlet = new AgendaOutlet(outlet, new List<Activity>());

        //		// Add to the collection
        //		this.Outlets.Add(agendaOutlet);
        //	}

        //	// Insert into the collection
        //	agendaOutlet.Activities.Add(newActivity);

        //	this.ActivityAdded?.Invoke(this, new ActivityEventArgs(newActivity));

        //	return newActivity;
        //}

        public PermissionResult CanCancel(Activity activity, ActivityCancelReason cancelReason)
        {
            if (activity == null)
            {
                throw new ArgumentNullException(nameof(activity));
            }

            if (activity.Status == null)
            {
                return(PermissionResult.Deny(@"CannotCancelInactiveActivity"));
            }
            // Check the day
            // TODO : !!!
            //var visitDay = this.DataProvider.GetVisitDay(DateTime.Today);

            return(PermissionResult.Allow);
        }