public HttpResponseMessage Get([FromUri] Guid?id, [FromUri] Guid?projectId) { var model = db.MemberDayReports .AsNoTracking() .Include(x => x.Member) .Include(x => x.Project) .Include(x => x.Project.Members) .Include(x => x.Project.Members.Select(z => z.Member)) .Where(x => x.Project.Members.Any(z => z.MemberId == UserId)) .FirstOrDefault(x => x.Id == id); if (model == null) { model = new MemberDayReport { Id = Guid.Empty, DateTime = DateTime.Now, ProjectId = projectId.Value, Project = db.Projects .Include(x => x.Members) .FirstOrDefault(x => x.Id == projectId.Value), }; model.Member = db.ProjectMembers.Where(x => x.ProjectId == projectId & x.MemberType == ProjectMemberType.Customer).Select(z => z.Member).FirstOrDefault(); model.MemberId = model.Member == null ? (Guid?)null : model.Member.Id; model.RateType = model.Project.RateType; model.Value = model.Project.RateValue; } var r = model.ToDynamic(); r.Currency = db.Currencies.FirstOrDefault(x => x.UserId == UserId & x.CurrencyType == model.Project.RateCurrencyType); r.Members = db.ProjectMembers.Where(x => x.ProjectId == projectId & x.MemberType == ProjectMemberType.Customer).Select(z => z.Member).ToList(); return(ResponseObject2Json(r)); }
public HttpResponseMessage Post(MemberDayReport model) { var p = db.ProjectMembers.Where(x => x.ProjectId == model.ProjectId & x.Member.MainMemberId == UserId & x.MemberType == ProjectMemberType.Implementer).Select(x => x.Project).FirstOrDefault(); model.Id = Guid.NewGuid(); model.UserId = UserId; model.Member = null; model.Project = null; model.ProjectId = p.Id; db.MemberDayReports.Add(model); db.SaveChanges(); return(ResponseObject2Json(null)); }
public HttpResponseMessage Put(MemberDayReport model) { var p = db.ProjectMembers .AsNoTracking() .Where(x => x.ProjectId == model.ProjectId & x.Member.MainMemberId == UserId & x.MemberType == ProjectMemberType.Implementer).Select(x => x.Project) .FirstOrDefault(); if (p != null) { model.Member = null; model.Project = null; db.Entry(model).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return(ResponseObject2Json(null)); }