public TimeEntryModule(IMyContext ctx) : base("/recordTime") { Post["/{projectid}"] = _ => { TimeEntry newEntry = this.Bind(); int projectId = _.projectid; // Need to cast the parameter to int so LINQ knows its working with the correct type newEntry.Project = ctx.Projects.Find(projectId); newEntry.RegistrationDate = DateTime.Now; ctx.TimeEntries.Add(newEntry); ctx.SaveChanges(); return(Response.AsJson <object>(newEntry)); }; Post["/del/{id}"] = x => { var entry = new TimeEntry() { Id = x.id }; ctx.Entry(entry).State = EntityState.Deleted; ctx.SaveChanges(); return(Response.AsText("Time entry successfully deleted")); }; }
public void Update(Article article) { using (_ctx) { _ctx.Entry(article).State = EntityState.Modified; _ctx.SaveChanges(); } }
public DinnerModule(IMyContext ctx) : base("/dinner") { Get["/"] = x => { return(Response.AsJson <object>(ctx.Dinners.ToArray())); }; Post["/"] = _ => { Dinner dinner = this.Bind <Dinner>(); ctx.Dinners.Add(dinner); ctx.SaveChanges(); return(HttpStatusCode.OK); }; Put["/{id:int}"] = parameters => { Dinner dinner = this.Bind <Dinner>(); dinner.Id = parameters.id; ctx.Dinners.Attach(dinner); ctx.Entry(dinner).State = EntityState.Modified; ctx.SaveChanges(); return(HttpStatusCode.OK); }; Delete["/{id:int}"] = x => { var dinner = new Dinner() { Id = x.id }; ctx.Entry(dinner).State = EntityState.Deleted; ctx.SaveChanges(); return(HttpStatusCode.OK); }; }
public ProjectModule(IMyContext ctx) : base("/projects") { Get["/list"] = parameters => { var model = new ResponseBean(ctx.Projects.ToList()); return(View["ListProjects", model]); }; Get["/create"] = parameters => { var clients = new ResponseBean() { Clients = ctx.Clients.ToList() }; return(View["CreateProject", clients]); }; Post["/create"] = _ => { var message = "Successfully added project "; var createSuccess = "alert-success"; try { string reqString = this.Request.Body.ReadAsString(); int clientId = getClientIdFromRequest(reqString); var client = ctx.Clients.Find(clientId); var project = this.Bind <Project>("Client"); project.CreationDate = DateTime.Now; project.Client = client; ctx.Projects.Add(project); ctx.SaveChanges(); message += project.Title; } catch (Exception ex) { if (ex is ModelBindingException) { message = "Couldn't bind model. <br>" + HtmlUtil.FormatExceptionHtml(ex); createSuccess = "alert-warning"; } else if (ex is DbUpdateException || ex is RequestExecutionException) { message = "Couldn't complete request to DataBase. <br>" + HtmlUtil.FormatExceptionHtml(ex); createSuccess = "alert-danger"; } else { message = "Something went wrong while creating your project :/<br>" + HtmlUtil.FormatExceptionHtml(ex); createSuccess = "alert-danger"; } } var model = new ResponseBean() { Message = message, CreateSuccess = createSuccess, Redirect = true, Clients = ctx.Clients.ToList() }; return(View["CreateProject", model]); }; Get["/{id}"] = _ => { ResponseBean model = new ResponseBean(); Project p; int projectId = _.id; if ((p = ctx.Projects.Find(projectId)) != null) { model.Project = p; model.Client = p.Client; var timeEntries = ctx.TimeEntries.Where(t => t.Project.Id == projectId).ToList(); float hoursSpent = timeEntries.Sum(t => t.HoursSpent); model.WorkDone = timeEntries; model.HoursSpent = hoursSpent; model.Success = true; // We need to send a bool, since the SSVE @If can only check on bools } else { model.Message = "Couldn't find project with id " + _.id; model.Success = false; } return(View["ProjectDetail", model]); }; Post["/del/{id}"] = x => { var project = new Project() { Id = x.id }; ctx.Entry(project).State = EntityState.Deleted; ctx.SaveChanges(); return(HttpStatusCode.OK); }; }