示例#1
0
        public async Task <ActionResult> AddOrEdit(Lecturer model)
        {
            var res = new JsonQuery(true);

            res.Parse(ModelState);
            if (ModelState.IsValid)
            {
                Lecturer current;
                if (!string.IsNullOrWhiteSpace(model.Id))
                {
                    if (!await DbContext.Lecturers.AnyAsync(l => l.Id == model.Id))
                    {
                        res.AddError(null, "FirstName", "Лектор не найден");
                        goto res;
                    }
                    DbContext.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
                    current = await DbContext.Lecturers.FirstOrDefaultAsync(l => l.Id == model.Id);

                    var find = await DbContext.Lecturers.FirstOrDefaultAsync(l =>
                                                                             l.FirstName == model.FirstName &&
                                                                             l.SecondName == model.SecondName &&
                                                                             l.LastName == model.LastName);

                    if (find != null && find.Id != current.Id)
                    {
                        res.AddError(null, "FirstName", "Лектор с таким именем фамилией и отчеством уже есть.");
                        goto res;
                    }
                    DbContext.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.TrackAll;
                    DbContext.Update(model);
                }
                else
                {
                    if (await DbContext.Lecturers.AnyAsync(l =>
                                                           l.FirstName == model.FirstName &&
                                                           l.SecondName == model.SecondName &&
                                                           l.LastName == model.LastName))
                    {
                        res.AddError(null, "FirstName", "Лектор с таким именем фамилией и отчеством уже есть.");
                        goto res;
                    }

                    await DbContext.Lecturers.AddAsync(model);
                }
                await DbContext.SaveChangesAsync();
            }
res:
            return(Json(res.Result(data: model)));
        }
示例#2
0
        public async Task AddReservation(Four25ClassSchedule schedule, string userName)
        {
            var res = new Reservation()
            {
                UserName  = userName,
                ClubId    = _settings.ClubId,
                EventId   = schedule.EventItemId,
                StartTime = DateTime.ParseExact($"{schedule.EventDate} {schedule.EventStartTime}", Globals.GymTimeFormat, CultureInfo.InvariantCulture)
            };
            await _context.Reservations.AddAsync(res);

            await _context.SaveChangesAsync();
        }