public async Task <(bool Success, ScheduleData Result)> Vote(ScheduleData prevSchedule, MemberName memberName, ScheduleMemberStatus memberStatus) { var schedule = await GetSchedule(prevSchedule.Id); if (schedule == null) { return(false, null); } var memberData = schedule.Members.FirstOrDefault(x => x.Name == memberName); if (memberData == null) { return(false, null); } memberData.Status = memberStatus; var result = await SaveSchedule(schedule); return(result, result ? schedule : null); }
public async Task <bool> SaveSchedule(ScheduleData schedule) { if (schedule.Id == 0) { var list = await GetAllSchedule(); schedule.Id = list.MaxOrNull(x => x.Id) + 1 ?? 1; } var fileName = $"sufc-schedule-{schedule.Id}.json"; if (fileName.HasInvalidFileNameChar()) { return(false); } await _fs.WriteJsonAsync(path => path.GetPath(PathType.SuFcSchedulesPath) + "/" + fileName, schedule); _scheduleList = null; return(true); }