Пример #1
0
        public async Task <HttpResponseMessage> ScheduleAdd(TutorScheduleApiModels model)
        {
            string        user_id = db.User.Where(x => x.UserName == model.Username).FirstOrDefault().Id;
            DayOfWeekEnum dow     = (DayOfWeekEnum)Enum.Parse(typeof(DayOfWeekEnum), model.Day);
            DateTime      _start  = DateTime.Parse(model.Start);
            DateTime      start   = new DateTime(1970, 1, 1, _start.Hour, _start.Minute, 0);
            DateTime      _end    = DateTime.Parse(model.End);
            DateTime      end     = new DateTime(1970, 1, 1, _end.Hour, _end.Minute, 0);

            CommonRequestModels data = new CommonRequestModels();

            var isExist = await db.TutorSchedules
                          .Where(x => x.Tutor_UserAccounts_Id == user_id &&
                                 x.DayOfWeek == dow &&
                                 x.StartTime == start && x.EndTime == end).FirstOrDefaultAsync();

            if (isExist != null)
            {
                data.Message = "This schedule already exist.";
            }
            else
            {
                if (start.Hour > end.Hour || (start.Hour == end.Hour && start.Minute > end.Minute))
                {
                    data.Message = "The Start Time cannot greater than End Time";
                }
            }

            if (string.IsNullOrEmpty(data.Message))
            {
                TutorSchedulesModels tutorSchedulesModels = new TutorSchedulesModels
                {
                    Id = Guid.NewGuid(),
                    Tutor_UserAccounts_Id = user_id,
                    DayOfWeek             = dow,
                    StartTime             = start,
                    EndTime  = end,
                    IsActive = true,
                    Notes    = model.Notes
                };
                db.TutorSchedules.Add(tutorSchedulesModels);
                await db.SaveChangesAsync();
            }

            return(Request.CreateResponse(HttpStatusCode.OK, data));
        }
Пример #2
0
        public async Task <HttpResponseMessage> ScheduleEdit(TutorScheduleApiModels model)
        {
            string        user_id = db.User.Where(x => x.UserName == model.Username).FirstOrDefault().Id;
            DayOfWeekEnum dow     = (DayOfWeekEnum)Enum.Parse(typeof(DayOfWeekEnum), model.Day);
            DateTime      _start  = DateTime.Parse(model.Start);
            DateTime      start   = new DateTime(1970, 1, 1, _start.Hour, _start.Minute, 0);
            DateTime      _end    = DateTime.Parse(model.End);
            DateTime      end     = new DateTime(1970, 1, 1, _end.Hour, _end.Minute, 0);

            CommonRequestModels data = new CommonRequestModels();

            var isExist = await db.TutorSchedules
                          .Where(x => x.Id.ToString() != model.Schedule_Id &&
                                 x.Tutor_UserAccounts_Id == user_id &&
                                 x.DayOfWeek == dow &&
                                 x.StartTime == start && x.EndTime == end).FirstOrDefaultAsync();

            if (isExist != null)
            {
                data.Message = "This schedule already exist.";
            }
            else
            {
                if (start.Hour > end.Hour || (start.Hour == end.Hour && start.Minute > end.Minute))
                {
                    data.Message = "The Start Time cannot greater than End Time";
                }
            }

            if (string.IsNullOrEmpty(data.Message))
            {
                var current_data = await db.TutorSchedules.Where(x => x.Id.ToString() == model.Schedule_Id).FirstOrDefaultAsync();

                current_data.Tutor_UserAccounts_Id = user_id;
                current_data.DayOfWeek             = dow;
                current_data.StartTime             = start;
                current_data.EndTime = end;
                //current_data.IsActive = tutorSchedulesModels.IsActive;
                current_data.Notes           = model.Notes;
                db.Entry(current_data).State = EntityState.Modified;
                await db.SaveChangesAsync();
            }

            return(Request.CreateResponse(HttpStatusCode.OK, data));
        }