Esempio n. 1
0
        public BookingTimeSlotsViewModel(BookingTimeslots bookingTimeslots, string connectionString) : this()
        {
            context = new MySqlContext(new MySqlConnectionFactory(connectionString));

            var HealthFacilities = context.JoinQuery <BookingTimeslots, HealthFacilities>((b, h) => new object[]
            {
                JoinType.InnerJoin, b.HealthFacilitiesId == h.HealthFacilitiesId
            })
                                   .Where((b, h) => b.TimeSlotId == bookingTimeslots.TimeSlotId)
                                   .Select((b, h) => h).FirstOrDefault();

            if (HealthFacilities != null)
            {
                HealthFacilitiesName = HealthFacilities.Name;
            }
            else
            {
                HealthFacilitiesName = "Toàn hệ thống";
            }
            HoursStart  = bookingTimeslots.HoursStart;
            MinuteStart = bookingTimeslots.MinuteStart;
            HoursEnd    = bookingTimeslots.HoursEnd;
            MinuteEnd   = bookingTimeslots.MinuteEnd;
            Code        = bookingTimeslots.Code;
            Name        = bookingTimeslots.Name;
            IsActive    = bookingTimeslots.IsActive;
            IsDefault   = bookingTimeslots.IsDefault;
            TimeSlotId  = bookingTimeslots.TimeSlotId;
        }
Esempio n. 2
0
        public IActionResult Delete(int id)
        {
            try
            {
                var obj = new BookingTimeslots();
                _context.Session.BeginTransaction();

                _context.Update <BookingTimeslots>(b => b.TimeSlotId == id, a => new BookingTimeslots()
                {
                    IsDelete = true
                });

                _context.Session.CommitTransaction();

                return(Json(new ActionResultDto()));
            }
            catch (Exception e)
            {
                if (_context.Session.IsInTransaction)
                {
                    _context.Session.RollbackTransaction();
                }
                return(StatusCode(500, _excep.Throw("Có lỗi xảy ra !", e.Message)));
            }
        }
Esempio n. 3
0
        public IActionResult Update([FromBody] BookingTimeslots obj)
        {
            var _obj = _context.Query <BookingTimeslots>().FirstOrDefault(b => b.TimeSlotId == obj.TimeSlotId);

            if (_obj == null)
            {
                return(StatusCode(404, _excep.Throw("Not Found")));
            }

            var objs = _context.Query <BookingTimeslots>().Where(b => b.TimeSlotId != obj.TimeSlotId && (b.HealthFacilitiesId == obj.HealthFacilitiesId || b.HealthFacilitiesId == null) && b.IsDelete == false).ToList();

            double timeStartInput = double.Parse($"{obj.HoursStart},{obj.MinuteStart}");
            double timeEndInput   = double.Parse($"{obj.HoursEnd},{obj.MinuteEnd}");

            foreach (var item in objs)
            {
                double timeStart = double.Parse($"{item.HoursStart},{item.MinuteStart}");
                double timeEnd   = double.Parse($"{item.HoursEnd},{item.MinuteEnd}");
                if ((timeStartInput >= timeStart && timeStartInput < timeEnd) || (timeEndInput > timeStart && timeEndInput <= timeEnd) || (timeStartInput < timeStart && timeEnd < timeEndInput))
                {
                    return(StatusCode(409, _excep.Throw("Sửa khung giờ khám không thành công", "Thời gian của khung giờ khám trùng với khung giờ khám đã có!")));
                }
            }


            try
            {
                _context.Session.BeginTransaction();
                _context.Update <BookingTimeslots>(b => b.TimeSlotId == obj.TimeSlotId, a => new BookingTimeslots()
                {
                    Name               = obj.Name.Trim(),
                    Code               = obj.Code.Trim(),
                    HoursStart         = obj.HoursStart,
                    HoursEnd           = obj.HoursEnd,
                    MinuteStart        = obj.MinuteStart,
                    MinuteEnd          = obj.MinuteEnd,
                    UpdateUserId       = obj.UpdateUserId,
                    IsActive           = obj.IsActive,
                    HealthFacilitiesId = obj.HealthFacilitiesId,
                    UpdateDate         = DateTime.Now
                });

                _context.Session.CommitTransaction();

                return(Json(new ActionResultDto()));
            }
            catch (Exception e)
            {
                if (_context.Session.IsInTransaction)
                {
                    _context.Session.RollbackTransaction();
                }
                return(StatusCode(500, _excep.Throw("Có lỗi xảy ra !", e.Message)));
            }
        }
        public BookingDoctorsViewModel(BookingTimeslots ts, int doctorId, string connectionString) : this()
        {
            context = new MySqlContext(new MySqlConnectionFactory(connectionString));

            HoursStart     = ts.HoursStart;
            MinuteStart    = ts.MinuteStart;
            HoursEnd       = ts.HoursEnd;
            MinuteEnd      = ts.MinuteEnd;
            TimeSlotId     = ts.TimeSlotId;
            DoctorCalendar = ConvertListString(context.Query <BookingDoctorsCalendars>().Where(dc => dc.TimeSlotId == ts.TimeSlotId && dc.DoctorId == doctorId).ToList());
        }
Esempio n. 5
0
 public BookingDoctorsApproveViewModel(BookingDoctorsCalendars dc, BookingTimeslots ts) : this()
 {
     Title       = ts != null ? (ts.HoursStart + "h" + ts.MinuteStart + " - " + ts.HoursEnd + "h" + ts.MinuteEnd) : "";
     Start       = new DateTime(dc.CalendarDate.Year, dc.CalendarDate.Month, dc.CalendarDate.Day, int.Parse(ts.HoursStart), int.Parse(ts.MinuteStart), 0);
     End         = new DateTime(dc.CalendarDate.Year, dc.CalendarDate.Month, dc.CalendarDate.Day, int.Parse(ts.HoursEnd), int.Parse(ts.MinuteEnd), 0);
     Color       = dc.Status == 1 ? "bisque" : (dc.Status == 2 ? "deepskyblue" : "aquamarine");
     TextColor   = dc.Status == 2 ? "red" : "black";
     ClassName   = dc.Status == 2 ? "del" : "";
     Description = dc.Address;
     //AllDay = true;
     //DisplayEventTime = false;
 }
Esempio n. 6
0
        public IActionResult Create([FromBody] BookingTimeslots obj)
        {
            var objs = _context.Query <BookingTimeslots>().Where(b => (b.HealthFacilitiesId == obj.HealthFacilitiesId || b.HealthFacilitiesId == null) && b.IsDelete == false).ToList();

            double timeStartInput = double.Parse($"{obj.HoursStart},{obj.MinuteStart}");
            double timeEndInput   = double.Parse($"{obj.HoursEnd},{obj.MinuteEnd}");

            foreach (var item in objs)
            {
                double timeStart = double.Parse($"{item.HoursStart},{item.MinuteStart}");
                double timeEnd   = double.Parse($"{item.HoursEnd},{item.MinuteEnd}");
                if ((timeStartInput >= timeStart && timeStartInput < timeEnd) || (timeEndInput > timeStart && timeEndInput <= timeEnd) || (timeStartInput < timeStart && timeEnd < timeEndInput))
                {
                    return(StatusCode(409, _excep.Throw("Thêm mới khung giờ khám không thành công", "Thời gian của khung giờ khám trùng với khung giờ khám đã có!")));
                }
            }

            try
            {
                _context.Session.BeginTransaction();
                #region [Tài khoản phòng khám, bệnh viện]
                if (obj.HealthFacilitiesId != null && !string.IsNullOrWhiteSpace(obj.HealthFacilitiesId.ToString()))
                {
                    var code = _context.Query <BookingTimeslots>().Where(ts => ts.Code.Equals(obj.Code) && ts.IsDelete == false).Where(ts => ts.HealthFacilitiesId.Equals(obj.HealthFacilitiesId) || ts.HealthFacilitiesId.ToString() == null).FirstOrDefault();
                    // lay ma code của dơn vị hiện tại + admin
                    if (code != null)
                    {
                        return(StatusCode(406, _excep.Throw(406, "Tạo khung giờ khám không thành công !", "Mã khung giờ khám đã tồn tại!")));
                    }
                    else
                    {
                        _context.Insert(() => new BookingTimeslots
                        {
                            Name               = obj.Name.Trim(),
                            Code               = obj.Code.Trim(),
                            HoursStart         = obj.HoursStart,
                            HoursEnd           = obj.HoursEnd,
                            MinuteStart        = obj.MinuteStart,
                            MinuteEnd          = obj.MinuteEnd,
                            IsDelete           = false,
                            IsActive           = obj.IsActive,
                            CreateUserId       = obj.CreateUserId,
                            UpdateUserId       = obj.UpdateUserId,
                            HealthFacilitiesId = obj.HealthFacilitiesId,
                            UpdateDate         = DateTime.Now,
                            CreateDate         = DateTime.Now
                        });
                    }
                }
                #endregion
                #region [Tài khoản admin]
                else
                {
                    var t = _context.Query <BookingTimeslots>().Where(ts => ts.Code.Equals(obj.Code) && ts.IsDelete == false).FirstOrDefault();
                    if (t == null)
                    {
                        _context.Insert(() => new BookingTimeslots
                        {
                            Name               = obj.Name.Trim(),
                            Code               = obj.Code.Trim(),
                            HoursStart         = obj.HoursStart,
                            HoursEnd           = obj.HoursEnd,
                            MinuteStart        = obj.MinuteStart,
                            MinuteEnd          = obj.MinuteEnd,
                            IsDelete           = false,
                            IsActive           = obj.IsActive,
                            CreateUserId       = obj.CreateUserId,
                            UpdateUserId       = obj.UpdateUserId,
                            HealthFacilitiesId = obj.HealthFacilitiesId,
                            UpdateDate         = DateTime.Now,
                            CreateDate         = DateTime.Now
                        });
                    }
                    else
                    {
                        return(StatusCode(406, _excep.Throw(406, "Tạo khung giờ khám không thành công !", "Mã khung giờ khám đã tồn tại!")));
                    }
                }
                #endregion
                _context.Session.CommitTransaction();

                return(Json(new ActionResultDto()));
            }
            catch (Exception e)
            {
                if (_context.Session.IsInTransaction)
                {
                    _context.Session.RollbackTransaction();
                }
                return(StatusCode(500, _excep.Throw("Có lỗi xảy ra !", e.Message)));
            }
        }