本文整理汇总了C#中TimeEntryModel.StopAsync方法的典型用法代码示例。如果您正苦于以下问题:C# TimeEntryModel.StopAsync方法的具体用法?C# TimeEntryModel.StopAsync怎么用?C# TimeEntryModel.StopAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TimeEntryModel
的用法示例。
在下文中一共展示了TimeEntryModel.StopAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StartStopTimeEntry
public static async Task StartStopTimeEntry (Context ctx)
{
var manager = ServiceContainer.Resolve<ActiveTimeEntryManager> ();
if (manager.Active == null) {
return;
}
var active = new TimeEntryModel (manager.Active);
if (manager.Active.State == TimeEntryState.Running) {
await active.StopAsync ();
ServiceContainer.Resolve<ITracker> ().SendTimerStopEvent (TimerStopSource.Watch);
} else {
active.Data.Description = ctx.Resources.GetString (Resource.String.WearEntryDefaultDescription);
await active.StartAsync ();
ServiceContainer.Resolve<ITracker> ().SendTimerStartEvent (TimerStartSource.WatchStart);
}
}
示例2: OnActionButtonClicked
private async void OnActionButtonClicked (object sender, EventArgs e)
{
// Protect from double clicks
if (isProcessingAction)
return;
isProcessingAction = true;
try {
var entry = ActiveTimeEntry;
if (entry == null)
return;
// Make sure that we work on the copy of the entry to not affect the rest of the logic.
entry = new TimeEntryModel (new TimeEntryData (entry.Data));
var showProjectSelection = false;
try {
if (entry.State == TimeEntryState.New && entry.StopTime.HasValue) {
await entry.StoreAsync ();
} else if (entry.State == TimeEntryState.Running) {
await entry.StopAsync ();
} else {
var startTask = entry.StartAsync ();
var userId = ServiceContainer.Resolve<AuthManager> ().GetUserId ();
if (userId.HasValue && ChooseProjectForNew && entry.Project == null) {
var store = ServiceContainer.Resolve<IDataStore> ();
var countTask = store.CountUserAccessibleProjects (userId.Value);
// Wait for the start and count to finish
await Task.WhenAll (startTask, countTask);
if (countTask.Result > 0)
showProjectSelection = true;
} else {
await startTask;
}
}
} catch (Exception ex) {
var log = ServiceContainer.Resolve<Logger> ();
log.Warning (LogTag, ex, "Failed to change time entry state.");
}
if (showProjectSelection) {
new ChooseTimeEntryProjectDialogFragment (entry).Show (activity.SupportFragmentManager, "projects_dialog");
}
var bus = ServiceContainer.Resolve<MessageBus> ();
bus.Send (new UserTimeEntryStateChangeMessage (this, entry));
} finally {
isProcessingAction = false;
}
}
示例3: StopTimeEntry
private async void StopTimeEntry (TimeEntryModel model)
{
await model.StopAsync ();
}