private async System.Threading.Tasks.Task saveLeaveRequest(int status) { if (IsBusy) { return; } IsBusy = true; try { var leaveRequest = EntitySaveHelper.GetLeaveRequestForSave(LeaveRequest); if (RequestType == SINGLE_DAY) { leaveRequest.StartDateTimezoned = leaveRequest.StartDateTimezonedValue.Date; leaveRequest.EndDate = null; } else if (RequestType == MULTI_DAY) { leaveRequest.StartDateTimezoned = leaveRequest.StartDateTimezonedValue.Date; leaveRequest.EndDateTimezoned = leaveRequest.EndDateTimezonedValue.Date; } if (!ForUser && status > 0) { var user = LoginHelper.GetLoggedInUser().User; leaveRequest.ApprovedDeniedById = user.UserId; leaveRequest.ApprovedDeniedDate = DateTime.Now; leaveRequest.StatusValue = status; } if (leaveRequest.LeaveRequestId == null) { await DataService.PostItemAsync <LeaveRequest>("leaveRequests", leaveRequest); } else { await DataService.PutItemAsync <LeaveRequest>("leaveRequests", leaveRequest.LeaveRequestIdValue, leaveRequest); } MessagingCenter.Send <LeaveRequestEditViewModel>(this, SUCCESS); IsBusy = false; } catch (Exception ex) { IsBusy = false; ExceptionHelper.ShowException(ex); } finally { IsBusy = false; } }