public ViewResult Respons(DateTime date, string startTijdUur, string startTijdMinuten, string eindTijdUur, string eindTijdMinuten, string reden)
        {
            var context           = new PlanningSysteemEntities();
            var newUnavailability = new Unavailability();

            newUnavailability.UnavailabilityCause     = reden;
            newUnavailability.UnavailabilityStartTime = new DateTime(date.Year, date.Month, date.Day, Convert.ToInt16(startTijdUur), Convert.ToInt16(startTijdMinuten), 0);
            newUnavailability.UnavailabilityEndTime   = new DateTime(date.Year, date.Month, date.Day, Convert.ToInt16(eindTijdUur), Convert.ToInt16(eindTijdMinuten), 0);
            newUnavailability.userID = 3;
            context.Unavailability.Add(newUnavailability);
            var addedUnavailability = new Models.Unavailability
            {
                UnavailabilityStartTime = newUnavailability.UnavailabilityStartTime,
                UnavailabilityEndTime   = newUnavailability.UnavailabilityEndTime,
                UnavailabilityCause     = newUnavailability.UnavailabilityCause
            };

            try
            {
                context.SaveChanges();
                addedUnavailability.UnavailabilityCause = "Uploaden gelukt";
                return(View(addedUnavailability));
            }
            catch (System.Data.Entity.Core.EntityException)
            {
                context.Unavailability.Remove(newUnavailability);
                addedUnavailability.UnavailabilityCause = "Uploaden gefaald";

                return(View(addedUnavailability));
            }
        }
Exemple #2
0
 public DialogResult ShowDialog(Timetable timetable, Unavailability unavail, int earliest, int latest)
 {
     _timetable = timetable;
     _unavail   = unavail;
     _earliest  = earliest;
     _latest    = latest;
     return(base.ShowDialog());
 }
Exemple #3
0
            public async Task <string> Handle(Command request, CancellationToken cancellationToken)
            {
                var unavailability = new Unavailability(request.From, request.To, request.Reason, request.Comment);

                _unavailabilityRepository.Insert(unavailability);
                await _unavailabilityRepository.SaveChangesAsync();

                return(unavailability.Id);
            }
Exemple #4
0
 public void SetActive(Unavailability unavail)
 {
     if (unavail == null || _activeUnavail == unavail)
     {
         return;
     }
     _activeUnavail = unavail;
     _activeStream  = null;
     Invalidate();
 }
        public void Can_create_unavailability()
        {
            //  arrange

            // act
            var unavailability = new Unavailability(DateTime.Now, DateTime.Now.AddDays(1), UnavailabilityReason.Sick, "");

            // assert
            unavailability.Reason.Should().Be(UnavailabilityReason.Sick);
        }
Exemple #6
0
 public void SetActive(Stream stream)
 {
     if (stream == null || _activeStream == stream)
     {
         return;
     }
     _activeStream  = stream;
     _activeUnavail = null;
     Invalidate();
 }
        public Unavailability AddUnavailability(Guid serviceItemId, Guid locationId, DateTime startTime, DateTime endTime, bool Sunday, bool Monday, bool Tuesday, bool Wednesday, bool Thursday, bool Friday, bool Saturday, string description)
        {
            Unavailability unavailability = new Unavailability(this.SiteId, this.Id, serviceItemId, locationId, startTime, endTime, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, description);

            if (Unavailabilities == null)
            {
                Unavailabilities = new ObservableCollection <Unavailability>();
            }

            Unavailabilities.Add(unavailability);

            return(unavailability);
        }
 private void FindClickDetails(TimetableEventArgs e)
 {
     _clickTime = e.Time;
     if (Timetable == null)
     {
         _clickSession = null;
         _clickUnavail = null;
     }
     else
     {
         _clickSession = Timetable.FindClassAt(_clickTime, true);
         _clickUnavail = Timetable.FindUnavailableAt(_clickTime);
     }
 }
Exemple #9
0
        private static List <string> Print_UNAVAILABLE_DAYS_ALL()
        {
            List <String> lines = new List <string>();

            lines.Add("UNAVAILABLE_DAYS_ALL:");
            lines.Add(@"Day(date)");

            foreach (var Unavailability in Unavailability_DaysAllConstraints)
            {
                lines.Add(Unavailability.Print());
            }

            return(lines);
        }
Exemple #10
0
        private static List <string> PrintUNAVAILABILITY_CURRICULUM()
        {
            List <String> lines = new List <string>();

            lines.Add("UNAVAILABILITY_CURRICULUM:");
            lines.Add(@"CurriculumID        Day(date)   timeslot(optional)");

            foreach (var Unavailability in Unavailability_CurriculumConstraints)
            {
                lines.Add(Unavailability.Print());
            }


            return(lines);
        }
Exemple #11
0
        /// <summary>
        /// Remove indisponibilidades cadastradas e permite reabrir o merchant na plataforma.
        /// <see href="https://developer.ifood.com.br/reference#merchantsmerchant_uuidunavailabilitiesunavailability_id">Referencia</see>
        /// </summary>
        /// <param name="merchantId"></param>
        /// <param name="unavailability"></param>
        /// <returns></returns>
        public static async Task DeleteUnavailability(Unavailability unavailability)
        {
            if (AuthService.Token == null)
            {
                // TODO: throw new Exception("Primeiro realize a authenticação")
            }

            if (IFoodAPIService.Config == null)
            {
                // TODO: throw new Exception("Configure primeiro o api")
            }

            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, $"{_baseUrl}/{IFoodAPIService.Config.MerchantId}/unavailabilities/{unavailability.Id}"))
            {
                request.Headers.Add("Authorization", AuthService.Token.FullToken);

                (await ApiService.SendAsync(request)).Dispose();
            }
        }
Exemple #12
0
        public async Task <Unavailability> AddUnavailability(AddUnavailabilityCommand addUnavailabilityCommand)
        {
            Unavailability unavailability = new Unavailability(
                addUnavailabilityCommand.SiteId,
                addUnavailabilityCommand.StaffId,
                addUnavailabilityCommand.ServiceItemId,
                addUnavailabilityCommand.LocationId,
                addUnavailabilityCommand.StartDateTime,
                addUnavailabilityCommand.EndDateTime,
                addUnavailabilityCommand.Sunday,
                addUnavailabilityCommand.Monday,
                addUnavailabilityCommand.Tuesday,
                addUnavailabilityCommand.Wednesday,
                addUnavailabilityCommand.Thursday,
                addUnavailabilityCommand.Friday,
                addUnavailabilityCommand.Saturday,
                addUnavailabilityCommand.Description);

            _unavailabilityRepository.Add(unavailability);

            await _businessIntegrationEventService.PublishThroughEventBusAsync(new UnavailabilityAddedByStaffEvent(
                                                                                   unavailability.StaffId,
                                                                                   unavailability.SiteId,
                                                                                   unavailability.StaffId,
                                                                                   unavailability.ServiceItemId,
                                                                                   unavailability.LocationId,
                                                                                   unavailability.StartDateTime,
                                                                                   unavailability.EndDateTime,
                                                                                   unavailability.Sunday,
                                                                                   unavailability.Monday,
                                                                                   unavailability.Tuesday,
                                                                                   unavailability.Wednesday,
                                                                                   unavailability.Thursday,
                                                                                   unavailability.Friday,
                                                                                   unavailability.Saturday,
                                                                                   unavailability.Description
                                                                                   ));

            //_unavailabilityRepository.UnitOfWork.Commit();

            return(unavailability);
        }
Exemple #13
0
        public async Task <Unavailability> AddUnavailability(AddUnavailabilityCommand addUnavailabilityCommand)
        {
            SchedulableCatalogItem serviceItem = GetExistingServiceItem(addUnavailabilityCommand.SiteId, addUnavailabilityCommand.ServiceItemId);

            Unavailability unavailability = serviceItem.AddUnavailability(
                addUnavailabilityCommand.StaffId,
                addUnavailabilityCommand.LocationId,
                addUnavailabilityCommand.StartDateTime,
                addUnavailabilityCommand.EndDateTime,
                addUnavailabilityCommand.Sunday,
                addUnavailabilityCommand.Monday,
                addUnavailabilityCommand.Tuesday,
                addUnavailabilityCommand.Wednesday,
                addUnavailabilityCommand.Thursday,
                addUnavailabilityCommand.Friday,
                addUnavailabilityCommand.Saturday,
                addUnavailabilityCommand.Description);

            await _businessIntegrationEventService.PublishThroughEventBusAsync(new UnavailabilityCreatedEvent(
                                                                                   unavailability.StaffId,
                                                                                   unavailability.SiteId,
                                                                                   unavailability.StaffId,
                                                                                   unavailability.ServiceItemId,
                                                                                   unavailability.LocationId,
                                                                                   unavailability.StartDateTime,
                                                                                   unavailability.EndDateTime,
                                                                                   unavailability.Sunday,
                                                                                   unavailability.Monday,
                                                                                   unavailability.Tuesday,
                                                                                   unavailability.Wednesday,
                                                                                   unavailability.Thursday,
                                                                                   unavailability.Friday,
                                                                                   unavailability.Saturday,
                                                                                   unavailability.Description
                                                                                   ));

            return(unavailability);
        }
Exemple #14
0
        public Task Handle(UnavailabilityCreatedEvent message)
        {
            Unavailability unavailability = new Unavailability(
                message.Id,
                message.SiteId,
                message.StaffId,
                message.ServiceItemId,
                message.LocationId,
                message.StartDateTime,
                message.EndDateTime,
                message.Sunday,
                message.Monday,
                message.Tuesday,
                message.Wednesday,
                message.Thursday,
                message.Friday,
                message.Saturday,
                message.Description);

            _unavailabilityRepository.Add(unavailability);
            _unavailabilityRepository.SaveChanges();
            return(Task.CompletedTask);
        }
Exemple #15
0
        public async Task <IActionResult> AddUnavailability([FromBody] Unavailability unavailability)
        {
            var item = new Unavailability(unavailability.SiteId,
                                          unavailability.StaffId,
                                          unavailability.ServiceItemId,
                                          unavailability.LocationId,
                                          unavailability.StartDateTime,
                                          unavailability.EndDateTime,
                                          unavailability.Sunday,
                                          unavailability.Monday,
                                          unavailability.Tuesday,
                                          unavailability.Wednesday,
                                          unavailability.Thursday,
                                          unavailability.Friday,
                                          unavailability.Saturday,
                                          unavailability.Description);

            _catalogContext.Unavailabilities.Add(item);

            await _catalogContext.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetUnavailabilityById), new { id = item.Id }, null));
        }
Exemple #16
0
 private Cursor DragCursor(Unavailability u)
 {
     return(DragCursor(u.Length, Color.DarkGray));
 }
Exemple #17
0
 public void ClearActive()
 {
     _activeStream  = null;
     _activeUnavail = null;
     Invalidate();
 }
Exemple #18
0
        private void ButtonOkClick(object sender, EventArgs e)
        {
            // take focus away from time pickers
            buttonOK.Focus();

            // get start and end times from input
            var start = TimeOfDay.FromDateTime(dateTimePickerStart.Value);
            var end   = TimeOfDay.FromDateTime(dateTimePickerEnd.Value);

            // if it starts before it ends
            if (start >= end)
            {
                MessageBox.Show("Start time must be before end time.", "Unavailable Timeslot", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                return;
            }

            // if it's not within the scope of the timetable
            if (end <= new TimeOfDay(_earliest, 0))
            {
                MessageBox.Show("End time must be after " + _earliest + "am.", "Unavailable Timeslot", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                dateTimePickerEnd.Focus();
                return;
            }
            if (start >= new TimeOfDay(_latest, 0))
            {
                MessageBox.Show("Start time must be before " + _latest + "pm.", "Unavailable Timeslot", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                dateTimePickerStart.Focus();
                return;
            }

            // clip the timeslot to be within the bounds of the timetable
            if (start < new TimeOfDay(_earliest, 0))
            {
                start = new TimeOfDay(_earliest, 0);
            }
            if (end > new TimeOfDay(_latest, 0))
            {
                end = new TimeOfDay(_latest, 0);
            }

            // build new unavailability from input
            var unavail = new Unavailability(textBoxName.Text, comboBoxDay.SelectedIndex,
                                             -1, start.Hour, start.Minute, end.Hour, end.Minute);

            if (_unavail != null && _unavail.EquivalentTo(unavail) && _unavail.Name == unavail.Name)
            {
                DialogResult = DialogResult.Cancel;
                Close();
                return;
            }

            // if editing, remove the old timeslot
            if (_unavail != null)
            {
                _timetable.UnavailableList.Remove(_unavail);
            }

            // if it doesn't fit in the current timetable
            if (!_timetable.FreeDuring(unavail, true))
            {
                MessageBox.Show("Selected time slot is currently occupied.", "Unavailable Timeslot",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                // if editing, add the old timeslot back in
                if (_unavail != null)
                {
                    _timetable.UnavailableList.Add(_unavail);
                }
                return;
            }

            // insert the edited timeslot
            _timetable.UnavailableList.Add(unavail);

            // recompute solutions
            _timetable.RecomputeSolutions = true;
            // return
            DialogResult = DialogResult.OK;
            Close();
        }