public async Task CmdAddOrUpdateTodo() { IsButtonDisabled = true; StateHasChanged(); if (LocalData.CurrTodo.HasDueDate) { if (LocalData.CurrTodo.DueDate <= LocalFunctions.ToLocalDate(DateTime.Now).AddMinutes(3)) { LocalFunctions.AddError("Due date should be minimum after 3 minute from now", MethodBase.GetCurrentMethod(), false, false); } } LocalFunctions.Validate(LocalData.CurrTodo); if (LocalFunctions.HasError()) { LocalFunctions.DisplayErrors(); } else { string a = string.Empty; if (LocalData.AddOrUpdateMode) { LocalData.CurrTodo.UserID = LocalData.CurrTSUser.ID; a = await WebApiFunctions.CmdAddTodo(LocalData.CurrTodo); } else { if (!GlobalFunctions.AreEqualTwoObjects(LocalData.CurrTodo, LocalData.BeforeUpdateTodo)) { a = await WebApiFunctions.CmdUpdateTodo(LocalData.CurrTodo); } else { LocalFunctions.AddMessage("Todo properties not updated", true, false); return; } } if (a.Equals("OK")) { LocalData.TsTodosList = new List <TSTodoEx>(); LocalData.btModal.Close(); LocalData.EventConsumerName = "TodosPage"; LocalData.componentBridge.InvokeRefresh(); } else { LocalFunctions.AddError(a, MethodBase.GetCurrentMethod(), true, false); } } IsButtonDisabled = false; }