Exemple #1
0
        public async Task <bool> AddAppoinmentAsync(MakeAnAppoinmentDto makeAnAppoinmentDto, int pacientId)
        {
            var time = TimeSpan.FromMinutes((int)makeAnAppoinmentDto.FromTimeSpan).ToString().
                       Substring(0, TimeSpan.FromMinutes((int)makeAnAppoinmentDto.FromTimeSpan).ToString().Length - 3) + "-" +
                       TimeSpan.FromMinutes((int)makeAnAppoinmentDto.ToTimeSpan).ToString().
                       Substring(0, TimeSpan.FromMinutes((int)makeAnAppoinmentDto.ToTimeSpan).ToString().Length - 3);

            var dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);

            //Add 3 hours in seconds to complete the diference between utc0 and utc3 (Romania time)
            dtDateTime = dtDateTime.AddSeconds(makeAnAppoinmentDto.DayUnixTime + 10800);

            var dateId = (dtDateTime.Year * 100 + dtDateTime.Month) * 100 + dtDateTime.Day;

            var newAppoinment = new Appoinment
            {
                AppoinmentDate      = dtDateTime.ToString("dd/MM/yyyy"),
                AppoinmentHour      = time,
                AppoinmentStartSpan = makeAnAppoinmentDto.FromTimeSpan,
                AppoinmentEndSpan   = makeAnAppoinmentDto.ToTimeSpan,
                Reason              = makeAnAppoinmentDto.Reason,
                DateId              = dateId,
                PacientId           = pacientId,
                DoctorId            = makeAnAppoinmentDto.DoctorId,
                IsConsultationAdded = false,
                StatusId            = (int)AppoinmentStatuses.Pending,
            };

            _context.Appoinments.Add(newAppoinment);

            return(await _context.SaveChangesAsync() > 0);
        }
        public async Task <ActionResult> MakeAnAppoinment(MakeAnAppoinmentDto makeAnAppoinmentDto)
        {
            var userPacient = await _pacientRepository.GetPacientByUsername(User.GetUserName());

            if (makeAnAppoinmentDto == null ||
                makeAnAppoinmentDto.DoctorId == 0 ||
                makeAnAppoinmentDto.DayUnixTime == 0 ||
                makeAnAppoinmentDto.FromTimeSpan == 0 || makeAnAppoinmentDto.ToTimeSpan == 0 || userPacient.Pacient == null)
            {
                return(BadRequest("Parametrii invalizi!"));
            }

            if (await _appoinmentsRepository.AddAppoinmentAsync(makeAnAppoinmentDto, userPacient.Pacient.Id))
            {
                return(Ok());
            }

            return(BadRequest("Upps..ceva nu a mers!"));
        }