public async Task<IHttpActionResult> PutOrder(int id, Order order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != order.OrderID) { return BadRequest(); } db.Entry(order).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public async Task<IHttpActionResult> PostOrder(OrderInsert order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } Order newO = new Order() { FirstName = order.FirstName, LastName = order.LastName, StartTime = order.StartTime, EndTime = order.EndTime, Phone = order.Phone, SalonID = order.SalonID, Sex = order.Sex, UserName = order.UserName, OrderDetails = order.Services, CreateOn = DateTime.Now, Date = order.Date }; db.Orders.Add(newO); await db.SaveChangesAsync(); return CreatedAtRoute("DefaultApi", new { id = newO.OrderID }, newO); }
public async Task<IHttpActionResult> ChangeTime(Guid id, Order order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != order.UniqueID) { return BadRequest(); } Order orderFromdb = await db.Orders.FindAsync(order.OrderID); orderFromdb.Date = order.Date.Date; orderFromdb.StartDateTime = order.StartDateTime.ToLocalTime(); DateTime endDt = order.StartDateTime.ToLocalTime(); TimeSpan startTime = new TimeSpan(), endTime = new TimeSpan(); var servicesTotalTime = orderFromdb.OrderDetails.Sum(x => x.Service.Time.Ticks); startTime = new TimeSpan(endDt.Hour, endDt.Minute, 0); endTime = new TimeSpan(startTime.Ticks + servicesTotalTime); endDt = endDt.AddTicks(servicesTotalTime); orderFromdb.EndDateTime = endDt; orderFromdb.StartTime = startTime; orderFromdb.EndTime = endTime; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); order.Date = orderFromdb.Date; order.StartDateTime = orderFromdb.StartDateTime; order.EndDateTime = orderFromdb.EndDateTime; order.StartTime = orderFromdb.StartTime; order.EndTime = orderFromdb.EndTime; } catch (DbUpdateConcurrencyException) { throw; } return Ok(order); }
public async Task<IHttpActionResult> PutOrder(Guid id, Order order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != order.UniqueID) { return BadRequest(); } Order orderFromdb = await db.Orders.FindAsync(order.OrderID); if (order.RejectedByUser) { if (!orderFromdb.Accepted && !orderFromdb.Rejected && !orderFromdb.DidntCome && !orderFromdb.Finished && !orderFromdb.RejectedByUser) { orderFromdb.RejectedByUser = true; orderFromdb.RejectedByUserTime = getTime; orderFromdb.RejectedByUserReason = order.RejectedByUserReason; orderFromdb.RejectedBy = order.RejectedBy; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { return StatusCode(HttpStatusCode.Conflict); } } if (order.Rejected && !order.Finished && !order.DidntCome) { if (!orderFromdb.Accepted && !orderFromdb.Rejected && !orderFromdb.DidntCome && !orderFromdb.Finished && !orderFromdb.RejectedByUser) { orderFromdb.Rejected = true; orderFromdb.RejectedTime = getTime; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { return StatusCode(HttpStatusCode.Conflict); } } if (order.Accepted && !order.Finished && !order.DidntCome) { if (!orderFromdb.Accepted && !orderFromdb.Rejected && !orderFromdb.DidntCome && !orderFromdb.Finished && !orderFromdb.RejectedByUser) { orderFromdb.Accepted = true; orderFromdb.AcceptedTime = getTime; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { return StatusCode(HttpStatusCode.Conflict); } } if (order.Accepted && order.Finished && !order.DidntCome) { if (orderFromdb.Accepted && !orderFromdb.Rejected && !orderFromdb.DidntCome && !orderFromdb.Finished && !orderFromdb.RejectedByUser) { orderFromdb.Finished = true; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { return StatusCode(HttpStatusCode.Conflict); } } if (order.Accepted && !order.Finished && order.DidntCome) { if (orderFromdb.Accepted && !orderFromdb.Rejected && !orderFromdb.DidntCome && !orderFromdb.Finished && !orderFromdb.RejectedByUser) { orderFromdb.DidntCome = true; db.Entry(orderFromdb).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { return StatusCode(HttpStatusCode.Conflict); } } return StatusCode(HttpStatusCode.NoContent); }
public async Task<IHttpActionResult> PostOrders(OrderInsertEvent order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } Order newO = new Order(); newO.FirstName = order.FirstName; newO.LastName = order.LastName; newO.SalonID = order.SalonID; newO.UserName = order.UserName; newO.CreateOn = getTime; newO.UniqueID = Guid.NewGuid(); newO.IsFromAdmin = true; var services = db.Services.Where(x => order.Services.Contains(x.ServiceID)); List<OrderDetail> details = new List<OrderDetail>(); long serviceTicks = 0; foreach (var item in services) { details.Add(new OrderDetail { DontCare = false, EmployeeID = order.EmployeeID, Price = item.Price, ServiceID = item.ServiceID }); serviceTicks += item.Time.Ticks; } newO.OrderDetails = details; DateTime iKnowThisIsUtc = order.StartDateTime; DateTime runtimeKnowsThisIsUtc = DateTime.SpecifyKind( iKnowThisIsUtc, DateTimeKind.Utc); var localVersion = TimeZoneInfo.ConvertTimeFromUtc(runtimeKnowsThisIsUtc, TimeZoneInfo.FindSystemTimeZoneById("FLE Standard Time"));//offset.ToOffset(new TimeSpan(3, 0, 0)); newO.Date = localVersion.Date; newO.StartDateTime = localVersion; DateTime endDt = localVersion; TimeSpan startTime = new TimeSpan(), endTime = new TimeSpan(); var servicesTotalTime = serviceTicks; startTime = new TimeSpan(endDt.Hour, endDt.Minute, 0); endTime = new TimeSpan(startTime.Ticks + servicesTotalTime); endDt = endDt.AddTicks(servicesTotalTime); newO.EndDateTime = endDt; newO.StartTime = startTime; newO.EndTime = endTime; db.Orders.Add(newO); await db.SaveChangesAsync(); return Ok(newO.UniqueID); }
public async Task<IHttpActionResult> PostOrders(OrderInsert order) { if (!ModelState.IsValid) { return BadRequest(ModelState); } DateTime iKnowThisIsUtc = order.Date; DateTime runtimeKnowsThisIsUtc = DateTime.SpecifyKind( iKnowThisIsUtc, DateTimeKind.Utc); var localVersion = TimeZoneInfo.ConvertTimeFromUtc(runtimeKnowsThisIsUtc, TimeZoneInfo.FindSystemTimeZoneById("FLE Standard Time"));//offset.ToOffset(new TimeSpan(3, 0, 0)); Order newO = new Order() { FirstName = order.FirstName, LastName = order.LastName, StartTime = order.StartTime, EndTime = order.EndTime, Phone = order.Phone, SalonID = order.SalonID, Sex = order.Sex, UserName = order.UserName, OrderDetails = order.Services, CreateOn = getTime, Date = localVersion, StartDateTime = localVersion.Add(order.StartTime), EndDateTime = localVersion.Add(order.EndTime), MoreInfo = order.MoreInfo, UniqueID = Guid.NewGuid(), }; db.Orders.Add(newO); await db.SaveChangesAsync(); return CreatedAtRoute("DefaultApi", new { id = newO.OrderID }, newO); }