//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)); }
//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); }