Задать вопрос
@Radia

Можно ли в If вести две или более условии, если да то как?

Хотел бы уточнить, не ИЛИ а И, то есть надо учитывать обе условие
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
olkhovichs
@olkhovichs
if(«условие» && «условие») {
...
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Вот вам 3 условия
var item = await _ctx.Telemetry.FirstOrDefaultAsync(x=>x.Login == model.Login &&  // совпадение по логину
                                                                       x.PageName == topic.Title && // совпадение по имени курса
                                                                       x.PageNumber == topic.Path // совпадение по пути
                                                                       );


А вот вам извращенная пачка

if (!ModelState.IsValid) return BadRequest();
            var now = DateTime.UtcNow;
            model.Login = FixLoginNames(model.Login);
            var m = await _ctx.Telemetry.OrderByDescending(x => x.End)
                .FirstOrDefaultAsync(x => x.Login == model.Login &&
                                          x.CourseId == model.CourseId &&
                                          x.PageName == model.PageName &&
                                          x.PageNumber == model.PageNumber);


И продолжение этого кода
try
            {
                var id = 0L;
                model.Start = now;
                var endTime = now.AddSeconds(Interval + 1);
                if (model.Topics != null) await ParseTopics(model, now);
                if (m == null)
                {
                    model.End = endTime;
                    await _ctx.AddAsync(model);
                    await _ctx.SaveChangesAsync();
                    id = model.Id;
                }
                // Проверяем что это одна и та-же сессия
                else if (m?.End != null && m.End > now)
                {
                    m.End = endTime;
                    m.Duration = GetDuration(m);
                    _ctx.Telemetry.Update(m);
                    await _ctx.SaveChangesAsync();
                    id = m.Id;
                }
                else
                {
                    model.End = now;
                    model.Duration = 0;
                    await _ctx.AddAsync(model);
                    await _ctx.SaveChangesAsync();
                    id = model.Id;
                }

                var url = Url.Action("Get", new { id });
                return Created(url, new { id, url });
            }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы