Пример #1
0
        public static ProjectWorkLogRequestModel Create()
        {
            var model = new ProjectWorkLogRequestModel
            {
                ShortDescription = "Short log description"
            };

            return(model);
        }
        public static ProjectWorkLogRequestModel Create()
        {
            var model = new ProjectWorkLogRequestModel
            {
                ShortDescription = "Short log description"
            };

            return model;
        }
        public IHttpActionResult BeginWorkLogSession(int id, [FromBody] ProjectWorkLogRequestModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var result = this.data.Projects
                         .Find(x => x.Id == id).FirstOrDefault();

            if (result == null)
            {
                return(this.BadRequest("No project with that id is present."));
            }

            var currentUserId = User.Identity.GetUserId();

            var user = this.data.Employees.Find(x => x.Id == currentUserId).FirstOrDefault();

            if (user == null)
            {
                return(this.BadRequest("Only employees can work on projects!"));
            }

            var workLog = Mapper.Map <WorkLog>(model);

            workLog.StartTime = DateTime.Now;

            result.WorkLogs.Add(workLog);
            data.Projects.Update(result);
            data.SaveChanges();

            var message = string.Format("Project session activity: User {0} started a work session at {1} on {2}'s project | {3}", user.Email, workLog.StartTime, result.Client.Email, "/projects");

            pubnubClient.Broadcast(Constants.PubnubChannelActivityFeed, message, str => { }, s => { });

            return(this.Ok(workLog.Id));
        }
Пример #4
0
 public IHttpActionResult Post([FromBody] ProjectWorkLogRequestModel model)
 {
     return(this.NotFound());
 }