public async Task <IHttpActionResult> ChangeTaskStatus(string taskId, int status, string day) { try { String userid = User.Identity.GetUserId(); SubTaskStatusApp statusApp = new SubTaskStatusApp(); statusApp.changeTaskStatus(taskId, status, day, userid); } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok()); }
public List <QueryTaskModel> GetTasks(int queryType, string startDay, string endDay) { try { DateTime startTime = DateTime.ParseExact(startDay + " 00:00:00", "yyyyMMdd HH:mm:ss", CultureInfo.CurrentCulture); DateTime endTime = DateTime.ParseExact(endDay + " 23:59:59", "yyyyMMdd HH:mm:ss", CultureInfo.CurrentCulture); String userid = User.Identity.GetUserId(); List <QueryTaskModel> models = new List <QueryTaskModel>(); TaskMastApp mastApp = new TaskMastApp(); var tempMastEnt = mastApp.getTask(userid, startTime.ToString("yyyy-MM-dd"), endTime.ToString("yyyy-MM-dd"), queryType); var mastEnts = tempMastEnt.Distinct(); SubTaskStatusApp statusApp = new SubTaskStatusApp(); var statusEnts = statusApp.getTaskStatus(startTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime.ToString("yyyy-MM-dd HH:mm:ss"), userid); TaskPopApp popApp = new TaskPopApp(); var mastStatusList = popApp.getTaskStatusList(startTime.ToString("yyyy-MM-dd"), endTime.ToString("yyyy-MM-dd"), userid); foreach (var mastEnt in mastEnts) { int mastStatus = 2; var list = mastStatusList.Where(p => p.taskId.Equals(mastEnt.id)); if (list != null && list.Count() > 0) { mastStatus = list.First().status.Value; } //int mastStatus= mastStatusList.Where(p=>p.taskId.Equals(mastEnt.id)) //popApp.getTaskStatus(mastEnt.id, userid); string patch = mastEnt.createdTime.Value.ToString("yyyyMM"); // 1 = 一次 if (mastEnt.freqType == 1) { models.Add(this.markTasks(mastStatus, mastEnt, statusEnts, patch, mastEnt.starTime.Value)); } //4 = 每日 else if (mastEnt.freqType == 4) { TimeSpan ts = endTime - startTime; DateTime temptime = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.starTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); DateTime temptime2 = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.endTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); for (int i = 0; i <= ts.Days; i++) { if (DateTime.Compare(temptime, mastEnt.starTime.Value) >= 0 && DateTime.Compare(mastEnt.endTime.Value, temptime2) >= 0) { models.Add(this.markTasks(mastStatus, mastEnt, statusEnts, patch, temptime)); } temptime = temptime.AddDays(1); temptime2 = temptime2.AddDays(1); } } //8 = 每周 else if (mastEnt.freqType == 8) { TimeSpan ts = endTime - startTime; DateTime temptime = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.starTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); DateTime temptime2 = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.endTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); for (int i = 0; i <= ts.Days; i++) { //DateTime tempDate = mastEnt.starTime.Value.AddDays(i); if (DateTime.Compare(temptime, mastEnt.starTime.Value) >= 0 && DateTime.Compare(mastEnt.endTime.Value, temptime2) >= 0 && temptime.DayOfWeek == mastEnt.starTime.Value.DayOfWeek) { models.Add(this.markTasks(mastStatus, mastEnt, statusEnts, patch, temptime)); } temptime = temptime.AddDays(1); temptime2 = temptime2.AddDays(1); } } //16 = 每月 else if (mastEnt.freqType == 16) { TimeSpan ts = endTime - startTime; DateTime temptime = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.starTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); DateTime temptime2 = DateTime.ParseExact(startTime.ToString("yyyy-MM-dd") + mastEnt.endTime.Value.ToString(" HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.CurrentCulture); for (int i = 0; i <= ts.Days; i++) { //DateTime tempDate = mastEnt.starTime.Value.AddDays(i); if (DateTime.Compare(temptime, mastEnt.starTime.Value) >= 0 && DateTime.Compare(mastEnt.endTime.Value, temptime2) >= 0 && temptime.Day == mastEnt.starTime.Value.Day) { models.Add(this.markTasks(mastStatus, mastEnt, statusEnts, patch, temptime)); } temptime = temptime.AddDays(1); temptime2 = temptime2.AddDays(1); } } } return(models.OrderByDescending(p => p.starTime).ToList()); } catch (Exception ex) { var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(ex.ToString()), ReasonPhrase = "error" }; throw new HttpResponseException(resp); } }