private void UpdateNonAvailability(string userID, BusinessObjects.WorkManagement.EngineerNonAvailability nonAvailability, bool removeNonAvailability) { BusinessObjects.WorkManagement.EngineerNonAvailabilityCollection nonAvailabilities = null; DateTime lastKnownUpdatedDate = DateTime.MinValue; int appointmentIndex = -1; int nonAvailabilityID = 0; nonAvailabilities = BusinessObjects.WorkManagement.EngineerNonAvailabilityCollection.FindByUser(userID, ref lastKnownUpdatedDate); if (nonAvailabilities == null) { nonAvailabilities = new BusinessObjects.WorkManagement.EngineerNonAvailabilityCollection(); } appointmentIndex = nonAvailabilities.Find("ID", nonAvailability.ID); if (!removeNonAvailability) { if (appointmentIndex < 0) { // Work out an ID value for new NonAvailability and add it nonAvailabilityID = 1; while (nonAvailabilities.Find("ID", nonAvailability.ID) > -1) { nonAvailabilityID += 1; } nonAvailability.ID = nonAvailabilityID.ToString(); nonAvailabilities.Add(nonAvailability); appointmentIndex = (nonAvailabilities.Count - 1); } } else { nonAvailabilities.RemoveAt(appointmentIndex); } // Save, removing redundant non-availabilities at the same time nonAvailabilities.Save(userID, DateTime.Now.Date.AddDays(-1)); }
public ActionResult NonAvailability(string id) { BusinessObjects.WorkManagement.EngineerNonAvailabilityCollection nonAvailability = GetNonAvailability(id); if (nonAvailability == null) { nonAvailability = new BusinessObjects.WorkManagement.EngineerNonAvailabilityCollection(); } ViewBag.UserID = id; return View(nonAvailability); }