public ActionResult AddVisit(DoctorFreeTimeViewModel model) { Patient patient = db.PatientSet.Find(model.PatientId); WorkTime record = new WorkTime(); FreeTime freeTime = db.FreeTimeSet.Find(model.FreeTimeId); Doctor doctor = db.DoctorSet.Find(model.DoctorId); if (patient != null) { if (ModelState.IsValid && model.DoctorId != -1 && model.FreeTimeId != -1) { record.Doctor = doctor; record.StartTime = freeTime.StartTime; record.Patient = patient; patient.WorkTime.Add(record); db.FreeTimeSet.Remove(freeTime); db.Entry(patient).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Visits", patient)); } } ViewBag.Message = "Выберите врача и время"; return(RedirectToAction("Visits", patient)); }
public FreeTimeDTO(FreeTime f) { this.Id = f.Id; this.DayInWeek = f.DayInWeek; this.StartTime = f.StartTime; this.EndTime = f.EndTime; }
public ActionResult DeleteConfirmed(int id) { FreeTime freeTime = db.FreeTimeSet.Find(id); db.FreeTimeSet.Remove(freeTime); db.SaveChanges(); return(RedirectToAction("Index")); }
public FreeTimeEntity(FreeTime freeTime) { Id = freeTime.Id; UserId = freeTime.UserId; StartTime = freeTime.StartTime.ToString("yyyy-MM-dd'T'HH:mm:ss.SSS"); EndTime = freeTime.EndTime.ToString("yyyy-MM-dd'T'HH:mm:ss.SSS"); GroupId = freeTime.GroupId; }
public ActionResult Edit([Bind(Include = "Id,StartTime")] FreeTime freeTime) { if (ModelState.IsValid) { db.Entry(freeTime).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(freeTime)); }
public ActionResult Create([Bind(Include = "Id,StartTime")] FreeTime freeTime) { if (ModelState.IsValid) { db.FreeTimeSet.Add(freeTime); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(freeTime)); }
public async Task SaveTime() { try { FreeTime freeTime = new FreeTime(); freeTime.Day = arrayDays[day]; freeTime.StartTime = StartTime.Time.TotalMinutes; freeTime.EndTime = EndTime.Time.TotalMinutes; if (freeTime.EndTime <= freeTime.StartTime) { await DisplayAlert("Error", "La fecha de cierre no puede ser menor a la hora de inicio", "Acepar"); return; } bool answer = await DisplayAlert("Verificación", string.Format("Seguro que desea guardar el tiempo: \n {0}, {1} - {2} ?", freeTime.Day, StartTime.Time, EndTime.Time), "Aceptar", "Cancelar"); if (!answer) { return; } using (var data = new DataAccess()) { List <FreeTime> CurretFreeTime = data.GetFreeTime(freeTime.Day); foreach (FreeTime free in CurretFreeTime) { if (freeTime.StartTime >= free.StartTime && freeTime.EndTime <= free.EndTime) { return; } if (freeTime.StartTime <= free.EndTime && freeTime.EndTime > free.EndTime) { free.EndTime = freeTime.EndTime; data.Update(free); return; } if (freeTime.StartTime < free.StartTime && freeTime.EndTime >= free.StartTime) { free.StartTime = freeTime.StartTime; data.Update(free); return; } } Label lblMensaje = new Label(); lblMensaje.IsVisible = true; data.Insert(freeTime); data.Dispose(); } } catch (Exception e) { DisplayAlert("Error", e.Message, "aceptar"); } }
public ActionResult Edit([Bind(Include = "Id,StartTime")] FreeTime freeTime) { freeTime = db.FreeTimeSet.Find(freeTime.Id); if (freeTime != null) { db.Entry(freeTime).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(freeTime)); }
public IHttpActionResult AddFreeTime(FreeTimeDTO freeTimeDTO)//[FromBody]Members NewMember { FreeTime freeTime = freeTimeDTO.ConvertToFreeTime(); freeTime.StartTime = freeTimeDTO.StartTime; freeTime.DayInWeek = freeTimeDTO.DayInWeek; freeTime.EndTime = freeTimeDTO.EndTime; DB.FreeTime.Add(freeTime); DB.SaveChanges(); freeTime = DB.FreeTime.First(x => x.StartTime == freeTime.StartTime && x.EndTime == freeTime.EndTime && x.DayInWeek == freeTime.DayInWeek); return(Ok(freeTime.Id)); }
public static FreeTime ToFreeTime(this BarberSchedules schedule, DateTimeOffset date) { var startTime = date.SetTime(schedule.StartTimeMinute); var endTime = date.SetTime(schedule.EndTimeMinute); var freeTime = new FreeTime { Start = new TimePoint(startTime), End = new TimePoint(endTime) }; return(freeTime); }
// GET: FreeTimes/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FreeTime freeTime = db.FreeTimeSet.Find(id); if (freeTime == null) { return(HttpNotFound()); } return(View(freeTime)); }
public IActionResult addPerson([FromBody] FreeTime freeTime) { //validate data if (!DiaryValidation.isFreeTimeLegal(freeTime, diaryService)) { dynamic error = new JObject(); error.ErrorCode = "UNAUTHORIZED_API_METHOD"; error.Description = "illegal data"; return(Json(JsonConvert.SerializeObject(error))); } diaryService.addName(freeTime); return(Json(diaryService.getJSON())); }
public bool Insert(FreeTime model) { try { using (var context = new YueDongEntities()) { context.FreeTimes.Add(model); return(context.SaveChanges() > 0); } } catch (Exception e) { } return(false); }
public bool DeleteByUserIdAndWeekTime(FreeTime time) { try { using (var context = new YueDongEntities()) { var result = context.FreeTimes.Where(a => a.Status > 0 && a.UserId == time.UserId && time.Week == a.Week.Value && a.StartTime.Value.ToString("HH:mm") == time.StartTime.Value.ToString("HH:mm") && a.EndTime.Value.ToString("HH:mm") == time.EndTime.Value.ToString("HH:mm")); if (result.Any()) { result.FirstOrDefault().Status = 0; } return(context.SaveChanges() > 0); } } catch (Exception e) { } return(false); }
public IHttpActionResult RemoveFreeTime([FromBody] FreeTime time) { var result = new BaseResult(); result.ResultCode = "1"; result.ResultMessage = "Error"; if (time.UserId == null) { result.ResultMessage = "用户不能为空"; return(Ok(result)); } if (time.Week == null) { result.ResultMessage = "星期不能为空"; return(Ok(result)); } if (time.StartTime == null) { result.ResultMessage = "开始时间不能为空"; return(Ok(result)); } if (time.EndTime == null) { result.ResultMessage = "结束时间不能为空"; return(Ok(result)); } time.Id = Guid.NewGuid(); time.Status = 1; time.Version = 1; var inserttime = new FreeTimeDAL().DeleteByUserIdAndWeekTime(time); if (inserttime) { result.ResultData = time; result.ResultMessage = "Success"; result.ResultCode = "0"; } else { result.ResultMessage = "修改成功"; } return(Ok(result)); }
static void MakeArtifacts() { //var types = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.Namespace.StartsWith("DiscipleClan.Artifacts") && !t.Name.Contains("<>")); //foreach (var relic in types) { Trainworks.Trainworks.Log(BepInEx.Logging.LogLevel.All, "Artifact Name: " + relic.Name); Make(relic); } FreeTime.Make(); // EmberOnDivine.Make(); GoldOverTime.Make(); GravityOnAscend.Make(); RewindFirstSpell.Make(); PyreDamageOnEmber.Make(); QuickAndDirty.Make(); RageAgainstThePyre.Make(); RefundXCosts.Make(); // SeersBoostDivine.Make(); FirstBuffExtraStack.Make(); GoldOnPyreKill.Make(); HighestHPToFront.Make(); }
/// <summary> /// Метод, реализующий заполнение таблицы с возможными временами готовности заказов /// </summary> /// <param name="Interval">Величина интервала</param> /// <param name="Dishes">Количество блюд в указанный интервал</param> public void SetFreeTime(int Interval, int Dishes) { using (var db = new Contexts()) { //Заполняем информацию по интервалам для каждого дня foreach (var day in db.DayWork) { string start_h = day.StartDayHour; string start_m = day.StartDayMin; int st_h = Convert.ToInt32(start_h); int st_m = Convert.ToInt32(start_m); int fin_h = Convert.ToInt32(day.EndDayHour); int fin_m = Convert.ToInt32(day.EndDayMin); //Повторяем пока текущий час меньше финального или, если уже равны, то сравниваем минуты while (st_h < fin_h || st_h == fin_h && st_m <= fin_m) { FreeTime tmp = new FreeTime(); tmp.cur_amount = 0; tmp.DayWork = day; tmp.max_amount = Dishes; tmp.Time = start_h + ":" + start_m; db.FreeTime.Add(tmp); //Рассчитываем следующее доступное время st_m = st_m + Interval; st_h = st_h + st_m / 60; st_m = st_m % 60; start_h = st_h.ToString(); start_m = st_m.ToString(); //Если число минут меньше десяти, то в начале нужно приписать 0 if (st_m < 10) { start_m = "0" + start_m; } } } db.SaveChanges(); } }
public async Task <IActionResult> PostFreeTime([FromBody] FreeTime freeTime) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DateTime localDate = DateTime.Now; if (localDate > freeTime.TimeStart || localDate > freeTime.TimeEnd) { return(BadRequest("time is already over")); } var claims = User.Claims; var cla = claims.ToList(); var idTrainee = int.Parse(cla[1].Value); var alreadyis = _context.FreeTime.Where(l => ((l.TimeStart >= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeEnd && freeTime.TimeEnd >= l.TimeStart) || (l.TimeStart <= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeEnd) || (l.TimeStart <= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeStart && l.TimeEnd <= freeTime.TimeEnd) || (l.TimeStart >= freeTime.TimeStart && l.TimeEnd <= freeTime.TimeEnd) || (l.TimeStart == freeTime.TimeStart && l.TimeEnd == freeTime.TimeEnd)) && l.FkTraineeidTrainee == idTrainee) .Select(x => x.IdFreeTime).Count(); if (alreadyis > 0) { return(BadRequest("time is already written")); } if (freeTime.TimeStart >= freeTime.TimeEnd) { return(BadRequest("end time is bigger then start time")); } freeTime.FkTraineeidTrainee = idTrainee; _context.FreeTime.Add(freeTime); await _context.SaveChangesAsync(); return(CreatedAtAction("GetFreeTime", new { id = freeTime.IdFreeTime }, freeTime)); }
public ActionResult DeleteFreeTime(int doctorId, int id) { Doctor doctor = db.DoctorSet.Find(doctorId); FreeTime record = db.FreeTimeSet.Find(id); if (ModelState.IsValid) { doctor.FreeTime.Remove(record); db.FreeTimeSet.Remove(record); db.SaveChanges(); ViewBag.FreeTimeList = new SelectList(doctor.FreeTime, "Id", "StartTime"); ViewBag.WorkTimeList = new SelectList(doctor.WorkTime, "Id", "StartTime"); foreach (WorkTime wt in doctor.WorkTime) { ViewData[wt.StartTime.ToString()] = wt.Patient.FIO; } return(RedirectToAction("Edit", doctor)); } return(View(doctor)); }
public bool Update(FreeTime model) { try { using (var context = new YueDongEntities()) { var result = context.FreeTimes.FirstOrDefault(a => a.Id == model.Id); if (result != null) { result.StartTime = model.StartTime; result.EndTime = model.EndTime; result.Week = model.Week; result.UpdateTime = model.UpdateTime; } return(context.SaveChanges() > 0); } } catch (Exception e) { } return(false); }
public ActionResult AddFreeTime(int doctorId, [Bind(Include = "StartTime")] FreeTime freeTime) { Doctor doctor = db.DoctorSet.Find(doctorId); freeTime.Doctor = doctor; if (ModelState.IsValid) { freeTime = db.FreeTimeSet.Add(freeTime); doctor.FreeTime.Add(freeTime); db.SaveChanges(); ViewBag.FreeTimeList = new SelectList(doctor.FreeTime, "Id", "StartTime"); ViewBag.WorkTimeList = new SelectList(doctor.WorkTime, "Id", "StartTime"); foreach (WorkTime wt in doctor.WorkTime) { ViewData[wt.StartTime.ToString()] = wt.Patient.FIO; } return(RedirectToAction("Edit", doctor)); } ViewBag.doctorId = doctorId; return(View()); }
public async Task <IActionResult> PutFreeTime([FromRoute] int id, [FromBody] FreeTime freeTime) { var claims = User.Claims; var cla = claims.ToList(); var idTrainee = int.Parse(cla[1].Value); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var check = _context.FreeTime.Where(l => (l.IdFreeTime == id && l.FkTraineeidTrainee == idTrainee)).Select(x => x.IdFreeTime).Count(); if (check < 1) { return(Unauthorized()); } freeTime.IdFreeTime = id; freeTime.FkTraineeidTrainee = idTrainee; DateTime localDate = DateTime.Now; if (localDate > freeTime.TimeStart || localDate > freeTime.TimeEnd) { return(BadRequest("time is already over")); } var alreadyis = _context.FreeTime.Where(l => ((l.TimeStart >= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeEnd && freeTime.TimeEnd >= l.TimeStart) || (l.TimeStart <= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeEnd) || (l.TimeStart <= freeTime.TimeStart && l.TimeEnd >= freeTime.TimeStart && l.TimeEnd <= freeTime.TimeEnd) || (l.TimeStart >= freeTime.TimeStart && l.TimeEnd <= freeTime.TimeEnd) || (l.TimeStart == freeTime.TimeStart && l.TimeEnd == freeTime.TimeEnd)) && l.FkTraineeidTrainee == idTrainee) .Select(x => x.IdFreeTime).Count(); if (alreadyis > 1) { return(BadRequest("time is already busy")); } if (freeTime.TimeStart >= freeTime.TimeEnd) { return(BadRequest("end time is bigger then start time")); } _context.Entry(freeTime).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FreeTimeExists(id)) { return(NotFound()); } else { throw; } } return(Ok(freeTime)); }
private static Boolean Intersection3(KeyValuePair<FreeTime, String> first, KeyValuePair<FreeTime, String> second) { //Console.WriteLine("inside intesection3"); int result1 = DateTime.Compare(first.Key.Start, second.Key.End); int result2 = DateTime.Compare(first.Key.End, second.Key.Start); int result3 = DateTime.Compare(first.Key.Start, second.Key.Start); int result4 = DateTime.Compare(first.Key.End, second.Key.End); String calName; Boolean equal = (result3 == 0 && result4 == 0); if (!(result1 >= 0) && !(result2 <= 0) && !equal) { // -------------- if (result3 != 0 && result4 == 0 && !first.Value.Equals(second.Value)) { // Console.WriteLine("intersction3 1111111111111 "); FreeTime f = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks))); if (result3 < 0) calName = first.Value; else calName = second.Value; if (FinalFreeBusy.Count != 0) { if (!FinalFreeBusy.ContainsKey(f)) { FinalFreeBusy.Add(f, calName); //Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); } else { //Console.WriteLine("already contained " + f.Start + " " + f.End + " " + FinalFreeBusy[f]); //Console.WriteLine("entered the new code "); //if (!FinalFreeBusy[f].Equals(calName)) //{ // Console.WriteLine("entered the new if statement "); // FinalFreeBusy.Remove(f); // FinalFreeBusy.Add(f, calName); // Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); //} if (FinalFreeBusy[f].IndexOf(calName) == -1) { FinalFreeBusy[f] = FinalFreeBusy[f] + " " + calName; FinalFreeBusy[f]=RemoveDuplicateWords(FinalFreeBusy[f] ); } } } else { if (!FinalFreeBusy.ContainsKey(f)) FinalFreeBusy.Add(f, calName); //Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); } // Console.WriteLine(" new intersction3 1111111111111 "); FreeTime f2 = new FreeTime(new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); if (result3 < 0) calName = second.Value; else calName = first.Value; if (FinalFreeBusy.Count != 0) { if (!FinalFreeBusy.ContainsKey(f2)) { FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); //Console.WriteLine("Added " + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); } else { // Console.WriteLine("already contained " + f2.Start + " " + f2.End + " " + FinalFreeBusy[f2]); // Console.WriteLine("entered the new code "); //if (!FinalFreeBusy[f2].Equals(RemoveDuplicateWords(second.Value + " " + first.Value))) //{ // Console.WriteLine("entered the new if statement "); // FinalFreeBusy.Remove(f2); // FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); // Console.WriteLine("Added " + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); //} if (FinalFreeBusy[f2].IndexOf(calName) == -1) { FinalFreeBusy[f2] = FinalFreeBusy[f2] + " " + calName; FinalFreeBusy[f2]=RemoveDuplicateWords(FinalFreeBusy[f2]); } } } else { if (!FinalFreeBusy.ContainsKey(f2)) FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); //Console.WriteLine("Added " + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); } FreeTime r = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); FinalFreeBusy.Remove(r); //Console.WriteLine("Removed " + r.Start + " " + r.End + " "); } // --------------------- if (result4 != 0 && result3 == 0 && !first.Value.Equals(second.Value)) { // Console.WriteLine("intersction3 222222222222 ccccc "); FreeTime f = new FreeTime(new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); if (result4 < 0) { calName = second.Value; Console.WriteLine("intersction3 222222222222 iffff "); } else calName = first.Value; if (FinalFreeBusy.Count != 0) { if (!FinalFreeBusy.ContainsKey(f)) { // Console.WriteLine("intersction3 222222222222 contains "); FinalFreeBusy.Add(f, calName); //Console.WriteLine("added " + f.Start + " " + f.End + " " + calName); } else { // Console.WriteLine("already contained " + f.Start + " " + f.End + " " + FinalFreeBusy[f]); // Console.WriteLine("entered the new code "); //if (!FinalFreeBusy[f].Equals(calName)) //{ // Console.WriteLine("entered the new if statement "); // FinalFreeBusy.Remove(f); // FinalFreeBusy.Add(f, calName); // Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); //} if (FinalFreeBusy[f].IndexOf(calName) == -1) { FinalFreeBusy[f] = FinalFreeBusy[f] + " " + calName; FinalFreeBusy[f]= RemoveDuplicateWords(FinalFreeBusy[f]); } } } else { FinalFreeBusy.Add(f, calName); //Console.WriteLine("added " + f.Start + " " + f.End + " " + calName); } // Console.WriteLine("new intersction3 222222222222 ccccc "); FreeTime f2 = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks))); if (result4 < 0) { calName = first.Value; Console.WriteLine(" new intersction3 222222222222 iffff "); } else calName = second.Value; if (FinalFreeBusy.Count != 0) { if (!FinalFreeBusy.ContainsKey(f2)) { // Console.WriteLine(" new intersction3 222222222222 contains "); FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); //Console.WriteLine("added new " + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); } else { // Console.WriteLine("already contained " + f2.Start + " " + f2.End + " " + FinalFreeBusy[f2]); // Console.WriteLine("entered the new code "); //if (!FinalFreeBusy[f2].Equals(RemoveDuplicateWords(second.Value + " " + first.Value))) //{ // Console.WriteLine("entered the new if statement "); // FinalFreeBusy.Remove(f2); // FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); // Console.WriteLine("Added " + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); //} if (FinalFreeBusy[f2].IndexOf(calName) == -1) { FinalFreeBusy[f2] = FinalFreeBusy[f2] + " " + calName; FinalFreeBusy[f2]= RemoveDuplicateWords(FinalFreeBusy[f2]); } } } else { FinalFreeBusy.Add(f2, RemoveDuplicateWords(second.Value + " " + first.Value)); // Console.WriteLine("added new" + f2.Start + " " + f2.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); } FreeTime r = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); FinalFreeBusy.Remove(r); // Console.WriteLine("Removed " + r.Start + " " + r.End + " "); } //-------------------------------------- if (first.Value.Equals(second.Value)) { // Console.WriteLine("inside values are equal "); FreeTime j = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); if (!FinalFreeBusy.ContainsKey(j)) { FinalFreeBusy.Add(j, first.Value); // Console.WriteLine("added " + j.Start + " " + j.End + " " + first.Value); FinalFreeBusy.Remove(first.Key); FinalFreeBusy.Remove(second.Key); // Console.WriteLine("Removed " + first.Key.Start + " " + first.Key.End + " "); // Console.WriteLine("Removed " + second.Key.Start + " " + second.Key.End + " "); } else { //if (!FinalFreeBusy[j].Equals(first.Value)) //{ // FinalFreeBusy.Remove(j); // FinalFreeBusy.Add(j, first.Value); // Console.WriteLine("Added " + j.Start + " " + j.End + " " + first.Value); //} if (FinalFreeBusy[j].IndexOf(first.Value) == -1) { FinalFreeBusy[j] = FinalFreeBusy[j] + " " + first.Value; FinalFreeBusy[j]= RemoveDuplicateWords(FinalFreeBusy[j] ); } // Console.WriteLine("removed without adding"); FinalFreeBusy.Remove(first.Key); FinalFreeBusy.Remove(second.Key); // Console.WriteLine("Removed " + first.Key.Start + " " + first.Key.End + " "); // Console.WriteLine("Removed " + second.Key.Start + " " + second.Key.End + " "); } } //------------------- if (result3 != 0 && !first.Value.Equals(second.Value) && result4 != 0) { // Console.WriteLine("inside nor start nor end are equal "); string calName1, calName2; FreeTime f1 = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks))); if (result3 < 0) calName1 = first.Value; else calName1 = second.Value; FreeTime f2 = new FreeTime(new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); if (result4 < 0) calName2 = second.Value; else calName2 = first.Value; if (!FinalFreeBusy.ContainsKey(f1)) { FinalFreeBusy.Add(f1, calName1); // Console.WriteLine("added " + f1.Start + " " + f1.End + " " + calName1); } else { //if (!FinalFreeBusy[f1].Equals(calName1)) //{ // FinalFreeBusy.Remove(f1); // FinalFreeBusy.Add(f1, calName1); // Console.WriteLine("Added " + f1.Start + " " + f1.End + " " + calName1); //} if (FinalFreeBusy[f1].IndexOf(calName1) == -1) { FinalFreeBusy[f1] = FinalFreeBusy[f1] + " " + calName1; FinalFreeBusy[f1]=RemoveDuplicateWords(FinalFreeBusy[f1] ); } } if (!FinalFreeBusy.ContainsKey(f2)) { FinalFreeBusy.Add(f2, calName2); // Console.WriteLine("added " + f2.Start + " " + f2.End + " " + calName2); } else { //if (!FinalFreeBusy[f2].Equals(calName2)) //{ // FinalFreeBusy.Remove(f2); // FinalFreeBusy.Add(f2, calName2); // Console.WriteLine("Added " + f2.Start + " " + f2.End + " " + calName2); //} if (FinalFreeBusy[f2].IndexOf(calName2) == -1) { FinalFreeBusy[f2] = FinalFreeBusy[f2] + " " + calName2; FinalFreeBusy[f2]= RemoveDuplicateWords(FinalFreeBusy[f2]); } } FreeTime r = new FreeTime(new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks))); if (!FinalFreeBusy.ContainsKey(r)) { FinalFreeBusy.Add(r, RemoveDuplicateWords(second.Value + " " + first.Value)); //Console.WriteLine("added " + r.Start + " " + r.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); } else { //if (!FinalFreeBusy[r].Equals(RemoveDuplicateWords(second.Value + " " + first.Value))) //{ // FinalFreeBusy.Remove(r); // FinalFreeBusy.Add(r, RemoveDuplicateWords(second.Value + " " + first.Value)); // Console.WriteLine("Added " + r.Start + " " + r.End + " " + RemoveDuplicateWords(second.Value + " " + first.Value)); //} if (FinalFreeBusy[r].IndexOf(RemoveDuplicateWords(second.Value + " " + first.Value)) == -1) { FinalFreeBusy[r] = FinalFreeBusy[r] + " " + RemoveDuplicateWords(second.Value + " " + first.Value); FinalFreeBusy[r]= RemoveDuplicateWords(FinalFreeBusy[r]); } } FreeTime re = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); // Console.WriteLine("Removed " + re.Start + " " + re.End + " "); FinalFreeBusy.Remove(re); } return true; } else return false; }
public void setFreeTime(FreeTime i) { freeTime = i; }
protected void Awake() { stateMachine = gameObject.AddComponent<StateMachine>(); freeTime = gameObject.AddComponent<FreeTime>(); }
public async Task <IActionResult> AddFreeTime(string userId, string groupId, DateTime start, DateTime end) { User user = await userManager.FindByIdAsync(userId); Group group = groupRepository.GetGroup(groupId); if (user != null && group != null) { bool freeTimeEdited = false; if (start.CompareTo(end) >= 0) { return(BadRequest("Event ends before it starts.")); } FreeTime freeTime = new FreeTime(); var timesInRepo = freeTimeRepository.GetUserFreeTime(userId);//, groupId); if (timesInRepo != null) { foreach (var time in timesInRepo) { if ((time.StartTime < start && time.EndTime > start) || (time.StartTime < end && time.EndTime > end)) { freeTime = time; freeTime.EndTime = end; freeTime.StartTime = start; freeTimeRepository.Delete(time.Id); freeTimeEdited = true; } else if (time.StartTime > start && time.EndTime < end) { freeTime = time; freeTime.EndTime = end; freeTime.StartTime = start; freeTimeRepository.Delete(time.Id); freeTimeEdited = true; } else if (time.EndTime == start) { freeTime = time; freeTime.EndTime = end; freeTimeRepository.Delete(time.Id); freeTimeEdited = true; } else if (time.StartTime == end) { freeTime = time; freeTime.StartTime = start; freeTimeRepository.Delete(time.Id); freeTimeEdited = true; } } } if (!freeTimeEdited) { freeTime = new FreeTime { Id = Guid.NewGuid().ToString(), EndTime = end, StartTime = start, User = user, UserId = user.Id, Group = group, GroupId = group.GroupId }; } freeTimeRepository.Add(freeTime); FreeTimeEntity res = new FreeTimeEntity(freeTime); var result = JsonConvert.SerializeObject(res, Formatting.Indented); return(Content(result)); } return(BadRequest("User or Group not found.")); }
}//end method private void FinalMutual3() { Dictionary<FreeTime, string> FinalFreeBusy2 = new Dictionary<FreeTime, string>(FinalFreeBusy); FinalFreeBusy = new Dictionary<FreeTime, string>(); //foreach (KeyValuePair<FreeTime, String> t in FinalFreeBusy2) //{ // Console.WriteLine(t.Key.Start + " $$$$ " + t.Key.End + " $$$$$ " + t.Value); //} Boolean intersecFound = false; Boolean intersection = false; foreach (KeyValuePair<FreeTime, String> t in FinalFreeBusy2) { //Console.WriteLine(" intersection 3 "); intersecFound = false; if (FinalFreeBusy2 != null)///&& list.Count > 1) { //Console.WriteLine(t.Key.Start + " " + t.Key.End + FinalFreeBusy2); foreach (KeyValuePair<FreeTime, String> s in FinalFreeBusy2) { if ((DateTime.Compare(t.Key.Start.Date, s.Key.Start.Date) != 0)||((DateTime.Compare(t.Key.Start.Date, s.Key.Start.Date) == 0) && t.Key.End.CompareTo(s.Key.Start) <= 0)) continue; // Console.WriteLine(s.Key.Start + " " + s.Key.End +" " +s.Value+ " sssssssssss f3"); //Console.WriteLine("*********************final 3 **************"); if (!((DateTime.Compare(t.Key.Start, s.Key.Start) == 0) && (DateTime.Compare(t.Key.End, s.Key.End) == 0)) && (t.Key.Start.Date == s.Key.Start.Date) /*&& t.Value.Equals(s.Value)*/ ) { //Console.WriteLine("intered interesion in intesection3"); intersection = Intersection3(t, s); if (intersection) intersecFound = true; } }//end foreach if (!intersecFound) { if (!FinalFreeBusy.ContainsKey(t.Key)) FinalFreeBusy.Add(new FreeTime(t.Key.Start, t.Key.End), t.Value); intersecFound = false; } } } //Console.WriteLine("end of final 3"); Dictionary<FreeTime, string> FinalFreeBusy3 = new Dictionary<FreeTime, string>(FinalFreeBusy); foreach (KeyValuePair<FreeTime, String> first in FinalFreeBusy3) { foreach (KeyValuePair<FreeTime, String> second in FinalFreeBusy3) if (first.Key.Start.CompareTo(second.Key.Start) == 0 && first.Key.End.CompareTo(second.Key.End) != 0) { FreeTime r = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); FinalFreeBusy.Remove(r); } } }//end method
}//end method private static FreeTime Intersection(FreeTime first, FreeTime second) { // Console.WriteLine("inside intersection " + first.Start + " " + first.End + " sescond " + second.Start + " " + second.End); int result1 = DateTime.Compare(first.Start, second.End); int result2 = DateTime.Compare(first.End, second.Start); int result3 = DateTime.Compare(first.Start, second.Start); int result4 = DateTime.Compare(first.End, second.End); Boolean equal = (result3 == 0 && result4 == 0); if (!(result1 >= 0) && !(result2 <= 0) && !equal) { //Console.WriteLine(new DateTime(Math.Max(first.Start.Ticks, second.Start.Ticks)).TimeOfDay + "min max" + new DateTime(Math.Min(first.End.Ticks, second.End.Ticks)).TimeOfDay); return new FreeTime(new DateTime(Math.Max(first.Start.Ticks, second.Start.Ticks)), new DateTime(Math.Min(first.End.Ticks, second.End.Ticks))); } else if (result3 == 0 && result4 == 0) return (new FreeTime(first.Start, first.End)); else return null; }
public async Task <IActionResult> AddFreeTime([FromBody] AInfo2 info) { if (info.doctor == "" || info.date == "" || info.start == "" || info.end == "") { return(Ok("Invalid info")); } try { var freeTime = await _dbContext.FreeTimes.AsNoTracking().Include(a => a.Doctor).SingleOrDefaultAsync(ft => ft.Id == info.id); bool adding = false; if (freeTime == null) { freeTime = new FreeTime { Doctor = _dbContext.Doctors.SingleOrDefault(d => d.Name == info.doctor) }; adding = true; } else { freeTime.RowVersion = info.rowVersion; } freeTime.Start = DateTime.ParseExact(info.date + " " + info.start, "yyyy-MM-dd HH:mm", null); freeTime.End = DateTime.ParseExact(info.date + " " + info.end, "yyyy-MM-dd HH:mm", null); var freeTimes = _dbContext.FreeTimes.AsNoTracking().Include(ft => ft.Doctor) .Where(ft => ft.Doctor.Name == freeTime.Doctor.Name && ft.Start.Date == freeTime.Start.Date); var intersectingElements = CalculateIntersectingElements(freeTime, freeTimes); if (intersectingElements.Count > 0) { var newFt = new FreeTime { Doctor = freeTime.Doctor }; newFt.Start = intersectingElements.First().Start < freeTime.Start ? intersectingElements.First().Start : freeTime.Start; newFt.End = intersectingElements.Last().End > freeTime.End ? intersectingElements.Last().End : freeTime.End; if (!adding) { _dbContext.FreeTimes.Remove(freeTime); } _dbContext.RemoveRange(intersectingElements.Select(el => new FreeTime { Id = el.Id, RowVersion = el.RowVersion })); _dbContext.FreeTimes.Add(newFt); _dbContext.SaveChanges(); return(Ok("Success")); //return Ok("Intersection error"); } if (adding) { _dbContext.FreeTimes.Add(freeTime); } else { _dbContext.FreeTimes.Update(freeTime); } _dbContext.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(Ok("Fail")); } return(Ok("Success")); }
public CalendarEventList GetComparingEvents(DateTime timeMin, DateTime timeMax, List<String> CalendarIDs, String ViewFormat,bool primaryEmail) { allFree = new List<FreeTime>(); finalFree = new List<FreeTime>(); FinalallFree= new Dictionary<FreeTime, int>(); FinalallFreeConnection = new Dictionary<FreeTime, String>(); FreeBusy = new Dictionary<FreeTime, string>(); FinalFreeBusy = new Dictionary<FreeTime, string>(); primary = primaryEmail; if(primary) firstEmail = CalendarIDs[0].Substring(0, CalendarIDs[0].IndexOf(".")); //Console.WriteLine("fffffffffffff "+ firstEmail); log.Debug("Try to compare events from other Google Calendars "); CalendarEventList calendarEvents = new CalendarEventList(); Dictionary<string, List<FreeTime>> personAndFreeTimes = new Dictionary<string, List<FreeTime>>(); List<String> noEvents = new List<string>(); try { foreach (String calendarID in CalendarIDs) { List<FreeTime> freeTimeList = new List<FreeTime>(); if (timeMax.DayOfWeek == 0) timeMax = timeMax.AddDays(-2); if (timeMax.DayOfWeek == DayOfWeek.Saturday) timeMax = timeMax.AddDays(-1); if (timeMin.DayOfWeek == DayOfWeek.Saturday) timeMax = timeMax.AddDays(+2); if (timeMin.DayOfWeek == DayOfWeek.Sunday) timeMax = timeMax.AddDays(+1); EventsResource.ListRequest events = service.Events.List(calendarID); events.SingleEvents = true; events.MaxResults = 2500; events.TimeMin = timeMin; events.TimeMax = timeMax; Events eventList = events.Execute(); FreeBusyRequest request = new FreeBusyRequest(); List<FreeBusyRequestItem> requestItems = new List<FreeBusyRequestItem>(); request.TimeMin = timeMin; request.TimeMax = timeMax; FreeBusyRequestItem r = new FreeBusyRequestItem(); r.Id = calendarID; request.Items = new List<FreeBusyRequestItem>(); request.Items.Add(r); FreebusyResource.QueryRequest TestRequest = service.Freebusy.Query(request); var responseOBJ = TestRequest.Execute(); int count = responseOBJ.Calendars[calendarID].Busy.Count; if (count == 0) { FreeTime free = new FreeTime(); free.setStart(new DateTime(timeMax.Year, timeMax.Month, timeMax.Day, 9, 0, 0)); free.setEnd(new DateTime(timeMax.Year, timeMax.Month, timeMax.Day, 5, 0, 0).AddHours(12)); free.setEmail(calendarID); freeTimeList.Add(free); //Console.WriteLine(calendarID + " " + free.Start + " " + free.End); } if (count != 0) { // Console.WriteLine(timeMax.Date + "date max "); //Console.WriteLine(timeMin.Date + "date min "); // Console.WriteLine(DateTime.Today + "fff"); DateTime d = timeMin.Date; Boolean found = false; if (d.DayOfWeek == DayOfWeek.Sunday) d = d.AddDays(1); // Console.WriteLine("first "+ d.Date); if (timeMax.Date.CompareTo(timeMin.Date) != 0 && d.DayOfWeek != DayOfWeek.Saturday && d.DayOfWeek != DayOfWeek.Sunday) { //Console.WriteLine("second " + d.Date); while (d <= timeMax) { found = false; foreach (TimePeriod n in responseOBJ.Calendars[calendarID].Busy) { //Console.WriteLine("third " + d.Date); //Console.WriteLine(d.CompareTo(n.Start.Value.Date) + " d: " + d.Date + "n : " + n.Start.Value.Date); if (d.CompareTo(n.Start.Value.Date) == 0) { found = true; break; } } // Console.WriteLine("fourth " + d.Date + " " + found); if (!found) { //Console.WriteLine("not found " + d.Date); FreeTime free = new FreeTime(); free.setStart(new DateTime(d.Year, d.Month, d.Day, 9, 0, 0)); free.setEnd(new DateTime(d.Year, d.Month, d.Day, 5, 0, 0).AddHours(12)); free.setEmail(calendarID); freeTimeList.Add(free); // Console.WriteLine("adding to list " + free.Start + " " + free.End); } d= d.AddDays(+1); if (d.DayOfWeek == DayOfWeek.Saturday) d = d.AddDays(+2); } } int i = 0; int j = 0; Boolean singleevent = false; // Console.WriteLine("the count " + count); if (count == 1) singleevent = true; while (i < count && count != 0) { FreeTime free = new FreeTime(); Boolean startatNine = false; Boolean endFive = false; DateTime starttime = (responseOBJ.Calendars[calendarID].Busy[i].Start).Value; DateTime endtime = (responseOBJ.Calendars[calendarID].Busy[i].End).Value; // Console.WriteLine(" lets see " + starttime + " " + endtime); DateTime startworkhours = new DateTime(starttime.Year, starttime.Month, starttime.Day, 9, 0, 0); DateTime endworkhours = new DateTime(starttime.Year, starttime.Month, starttime.Day, 5, 0, 0).AddHours(12); if (i == 0 && singleevent == false) { if (j == 0 && (DateTime.Compare(startworkhours, starttime) != 0)) { free = subtractFromNine(starttime, endtime, i); free.setEmail(calendarID); if ((DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0)) { i--; j++; } } else if (startworkhours.Equals(starttime) || j > 0) { //Console.WriteLine("urghhhhh" + DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date)); if (startworkhours.Equals(starttime) && j == 0) { // Console.WriteLine("inside second if "); startatNine = true; if (DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0) { // Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::"); j++; i--; } } else if ((DateTime.Compare(starttime.Date, ((DateTime)responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Date) < 0) && j > 0) { //Console.WriteLine("inside first if "); free = subtractFromFive(starttime, endtime, i); free.setEmail(calendarID); j = 0; } } } else if (i + 1 == count && singleevent == false) { if (j == 0) { //Console.WriteLine(" else if (i + 1 == count && !(endworkhours.equals(endtime)) && singleevent == false) j==0 "); DateTime tempstarttime = (responseOBJ.Calendars[calendarID].Busy[i - 1].Start).Value; DateTime tempendtime = (responseOBJ.Calendars[calendarID].Busy[i - 1].End).Value; if ((DateTime.Compare(starttime.Date, tempendtime.Date) == 0)) { //Console.WriteLine(" entered if "); TimeSpan interval = starttime - tempendtime; free.setStart(starttime - interval); //Console.WriteLine(free.Start); free.setEnd(starttime); free.setEmail(calendarID); } else { free = subtractFromNine(starttime, endtime, i); } if (!(endworkhours.Equals(endtime))) { j++; i--; } } else { if (!(endworkhours.Equals(endtime))) { free = subtractFromFive(starttime, endtime, i); j = 0; } else endFive = true; } } else if (singleevent) { //Console.WriteLine("inside single event " + j + " " + starttime + " " + startworkhours); if (j == 0 && !(DateTime.Compare(starttime, startworkhours) == 0)) { free = subtractFromNine(starttime, endtime, i); if (!(DateTime.Compare(endtime, endworkhours) == 0)) { j++; i--; } } else { if (!(DateTime.Compare(endtime, endworkhours) == 0)) { free = subtractFromFive(starttime, endtime, i); free.setEmail(calendarID); j = 0; } else endFive = true; } } else { //Console.WriteLine("yaaaaaaaaaaaaaaarab"); DateTime tempstarttime = (responseOBJ.Calendars[calendarID].Busy[i - 1].Start).Value; DateTime tempendtime = (responseOBJ.Calendars[calendarID].Busy[i - 1].End).Value; if (j == 0) { if ((DateTime.Compare(tempendtime.Date, starttime.Date) == 0)) { //Console.WriteLine("entered the first"); TimeSpan interval = starttime - tempendtime; free.setStart(starttime - interval); free.setEnd(starttime); free.setEmail(calendarID); } else { //Console.WriteLine("entered the second"); if (startworkhours.Equals(starttime)) { // Console.WriteLine("statrt at nine"); startatNine = true; } else { free = subtractFromNine(starttime, endtime, i); } } if ((DateTime.Compare(starttime.Date, ((DateTime)(responseOBJ.Calendars[calendarID].Busy[i + 1].Start).Value).Date) < 0)) { //Console.WriteLine("entered the comparason"); i--; j++; } } else { //Console.WriteLine("supposed " + endworkhours.Equals(endtime)); if (!(endworkhours.Equals(endtime))) { free = subtractFromFive(starttime, endtime, i); free.setEmail(calendarID); j = 0; } else { endFive = true; j = 0; } } } i++; if (!startatNine && !endFive) { //Console.WriteLine("befor adding " + free.Start + " " + free.End); freeTimeList.Add(free); // Console.WriteLine(calendarID + " " + free.Start + " " + free.End); } //Console.WriteLine("after adding to list"); }//end while }//end if (count !=0 ) personAndFreeTimes.Add(calendarID.Substring(0, calendarID.IndexOf(".")), freeTimeList); //foreach (String k in personAndFreeTimes.Keys) //{ // foreach (FreeTime f in personAndFreeTimes[k]) // //Console.WriteLine(k + " " + f.Start + " " + f.End); //} freeTimeList.Sort(); }//end foreach numberOfEmails = personAndFreeTimes.Count; Stack myStack = new Stack(); foreach (String key in personAndFreeTimes.Keys) { myStack.Push(personAndFreeTimes[key]); } // ----------------------------------- All People View -------------------------------------------------- // if (ViewFormat == "All People") { Stack s1 = new Stack(); Stack s2 = new Stack(); foreach (String key in personAndFreeTimes.Keys) { // string result = noEvents.Find(delegate(String i) { return i == key; }); // if(result!=null) KeyValuePair<List<FreeTime>, String> pair = new KeyValuePair<List<FreeTime>, String>(personAndFreeTimes[key], key); s1.Push(pair); s2.Push(pair); //Console.WriteLine("pair " + pair.Key.ToString() + " " + pair.Value); } while (s1.Count != 0) { KeyValuePair<List<FreeTime>, String> sp1 = (KeyValuePair<List<FreeTime>, String>)s1.Pop(); while (s2.Count != 0) { KeyValuePair<List<FreeTime>, String> sp2 = (KeyValuePair<List<FreeTime>, String>)s2.Pop(); if (!(sp1.Value.Equals(sp2.Value))) FindMutual2(sp1, sp2); } s2 = s1; } FinalMutual2(); if (personAndFreeTimes.Count > 2) { FinalMutual3(); FinalMutual3(); } //Console.WriteLine(" back to main"); // FinalMutual4(); calendarEvents = ConvertToMutualCalendarEvents(FinalFreeBusy); }//end if All People view // ----------------------------------- -------------------------------------------------- // // ----------------------------------- "Some People" View -------------------------------------------------- // if (ViewFormat == "Some People") { Stack s1 = new Stack(); Stack s2 = new Stack(); foreach (String key in personAndFreeTimes.Keys) { KeyValuePair<List<FreeTime>, String> pair = new KeyValuePair<List<FreeTime>, String>(personAndFreeTimes[key], key); s1.Push(pair); s2.Push(pair); //Console.WriteLine("pair " + pair.Key.ToString() + " " + pair.Value); } while (s1.Count != 0) { KeyValuePair<List<FreeTime>, String> sp1 = (KeyValuePair<List<FreeTime>, String>)s1.Pop(); while (s2.Count != 0) { KeyValuePair<List<FreeTime>, String> sp2 = (KeyValuePair<List<FreeTime>, String>)s2.Pop(); if (!(sp1.Value.Equals(sp2.Value))) FindMutual2(sp1, sp2); } s2 = s1; } FinalMutual2(); // if (personAndFreeTimes.Count > 2) int num = 1; while( num<personAndFreeTimes.Count) { FinalMutual3(); num++; } FinalMutual3(); calendarEvents = ConvertToFreeBusyCalendarEvents(FinalFreeBusy); } //end free busy view //Console.WriteLine("before sort"); calendarEvents.SortByDate(); log.Debug("Successfully compared events from other Google Calendars"); }// end try catch (Exception ex) { log.Error("Failed to compare events from other Google Calendars with error:", ex); } return calendarEvents; }
private static Boolean Intersection2(KeyValuePair<FreeTime, String> first, KeyValuePair<FreeTime, String> second) { List<FreeTime> resultList = new List<FreeTime>(); int result1 = DateTime.Compare(first.Key.Start, second.Key.End); int result2 = DateTime.Compare(first.Key.End, second.Key.Start); int result3 = DateTime.Compare(first.Key.Start, second.Key.Start); int result4 = DateTime.Compare(first.Key.End, second.Key.End); String calName; Boolean equal = (result3 == 0 && result4 == 0); if (!(result1 >= 0) && !(result2 <= 0) && !equal) { // Console.WriteLine("inside first if "); if (result3 != 0) { //Console.WriteLine("gggggggggggggg 1111111111111 "); FreeTime f = new FreeTime(new DateTime(Math.Min(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks))); if (result3 < 0) calName = first.Value; else calName = second.Value; if (FinalFreeBusy.Count != 0) { if (!FinalFreeBusy.ContainsKey(f)) { FinalFreeBusy.Add(f, calName); //Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); } } else { if (!FinalFreeBusy.ContainsKey(f)) FinalFreeBusy.Add(f, calName); // Console.WriteLine("Added " + f.Start + " " + f.End + " " + calName); } } if (result4 != 0) { //Console.WriteLine("gggggggggggggg222222222222 ccccc "); FreeTime f = new FreeTime(new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks)), new DateTime(Math.Max(first.Key.End.Ticks, second.Key.End.Ticks))); //Console.WriteLine(f.Start + " " + f.End + "{{{{{{{{{{{{ "); if (result4 < 0) { calName = second.Value; // Console.WriteLine("gggggggggggggg222222222222 iffff "); } else calName = first.Value; if (FinalFreeBusy.Count != 0) { //beforeAdding(new KeyValuePair<FreeTime, String>(f, calName)); if (!FinalFreeBusy.ContainsKey(f)) { //Console.WriteLine("gggggggggggggg222222222222 contains "); FinalFreeBusy.Add(f, calName); //Console.WriteLine("added " + f.Start + " " + f.End + " " + calName); } } else { if (!FinalFreeBusy.ContainsKey(f)) FinalFreeBusy.Add(f, calName); //Console.WriteLine("added " + f.Start + " " + f.End + " " + calName); } } //Console.WriteLine("gggggggggggggg333333333333333 ccccc whyyyyyyy"); FreeTime r = new FreeTime(new DateTime(Math.Max(first.Key.Start.Ticks, second.Key.Start.Ticks)), new DateTime(Math.Min(first.Key.End.Ticks, second.Key.End.Ticks))); // Console.WriteLine("gggggggggggggg333333333333333 ccccc whyyyyyyy222222222"); if (!FinalFreeBusy.ContainsKey(r)) { //Console.WriteLine("gggggggggggggg333333333333333 ccccc whyyyyyyy 3333 "); FinalFreeBusy.Add(r, RemoveDuplicateWords(second.Value + " " + first.Value)); //Console.WriteLine("added " + r.Start + " " + r.End + " " + RemoveDuplicateWords(second.Value + " "+ first.Value)); } return true; } if (result3 == 0 && result4 == 0 && !(first.Value.Equals(second.Value))) { //Console.WriteLine("inside second if "); if (!FinalFreeBusy.ContainsKey((new FreeTime(first.Key.Start, first.Key.End)))) FinalFreeBusy.Add(new FreeTime(first.Key.Start, first.Key.End), RemoveDuplicateWords(first.Value + " " + second.Value)); //Console.WriteLine("added " + new FreeTime(first.Key.Start, first.Key.End).Start + " " + new FreeTime(first.Key.Start, first.Key.End).End + " " + first.Value + second.Value); return true; } //Console.WriteLine("outside if "); return false; }
/// <summary> /// Оформление заказа /// </summary> /// <param name="time">Выбранное время</param> /// <param name="notes">Заметки</param> /// <param name="where_eat">Место питания</param> /// <param name="allprice">Итоговая сумма</param> /// <returns>false если время уже занято, иначе true</returns> public bool Post(string time, string notes, string where_eat, int allprice) { Dictionary <string, string> dayName = new Dictionary <string, string>(7); dayName.Add("Monday", "Понедельник"); dayName.Add("Tuesday", "Вторник"); dayName.Add("Wednesday", "Среда"); dayName.Add("Thursday", "Четверг"); dayName.Add("Friday", "Пятница"); dayName.Add("Saturday", "Суббота"); dayName.Add("Sunday", "Воскресенье"); //Название сегодняшнего дня string Today = dayName[DateTime.Now.DayOfWeek.ToString()]; using (var db = new Contexts()) { //Выбираю день с названием сегодняшнего DayWork day = new DayWork(); day = db.DayWork.Where(d => d.Name == Today).FirstOrDefault(); //Выбираю из доступных времен заказов только сегодняшнее и по выбранному времени FreeTime t = new FreeTime(); t = db.FreeTime.Where(c => c.Time == time && c.DayWorkID == day.DayWorkID) .FirstOrDefault(); //Проверяю, не успели ли его занять if (t.cur_amount + 1 <= t.max_amount) { ++t.cur_amount; int id_user; CookieHeaderValue cookie = Request.Headers.GetCookies("user_token").FirstOrDefault(); if (cookie != null) { //Уникальный идентификатор пользователя из куки id_user = Convert.ToInt32(cookie["user_token"].Value); //Заполняю заказ Order order = new Order(); List <Cart> cart = db.Cart.Where(c => c.UserId == id_user).ToList(); order.Notes = notes; order.OrderTime = DateTime.Now; order.ReadyTime = time; order.Status = 0; order.UserId = id_user; order.Sum = allprice; if (where_eat == "true") { order.WhereEat = true; } else { order.WhereEat = false; } db.Orders.Add(order); db.SaveChanges(); foreach (Cart c in cart) { OrderItems orderItems = new OrderItems(); orderItems.Amount = c.Amount; orderItems.MenuItem = db.MenuItems.Where(m => m.Id == c.MenuItemId).FirstOrDefault(); orderItems.Sum = c.Amount * orderItems.MenuItem.Price; orderItems.OrderId = order.OrderID; db.OrderItems.Add(orderItems); } //Чистим корзину foreach (Cart c in cart) { db.Cart.Remove(c); } db.SaveChanges(); //Формирование номера заказа string tmp = DateTime.Now.Year.ToString().Substring(2); if (DateTime.Now.Month.ToString().Length == 1) { tmp += "0" + DateTime.Now.Month.ToString(); } else { tmp += DateTime.Now.Month.ToString(); } if (DateTime.Now.Day.ToString().Length == 1) { tmp += "0" + DateTime.Now.Day.ToString(); } else { tmp += DateTime.Now.Day.ToString(); } if (DateTime.Now.Minute.ToString().Length < 2) { tmp += "0" + DateTime.Now.Minute.ToString(); } else { tmp += DateTime.Now.Minute.ToString(); } if (DateTime.Now.Hour.ToString().Length < 2) { tmp += "0" + DateTime.Now.Hour.ToString(); } else { tmp += DateTime.Now.Hour.ToString(); } if (order.OrderID % 100 < 10) { tmp += "0" + (order.OrderID % 100).ToString(); } else { tmp += (order.OrderID % 100).ToString(); } order.NumberOrder = tmp; db.SaveChanges(); } return(true); } else //Если не успели { return(false); } } }
private FreeTime subtractFromFive(DateTime startTime, DateTime endTime, int i) { FreeTime free = new FreeTime(); DateTime startWorkHours = new DateTime(startTime.Year, startTime.Month, startTime.Day, 9, 0, 0); DateTime endWorkHours = new DateTime(startTime.Year, startTime.Month, startTime.Day, 5, 0, 0).AddHours(12); TimeSpan interval = endWorkHours - endTime; free.setStart(endWorkHours - interval); free.setEnd(endWorkHours); // Console.WriteLine("inside the five method : " + free.Start + " " + free.End); return free; }