示例#1
0
        public IHttpActionResult PutProgressHistory(int id, ProgressHistory progressHistory)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != progressHistory.ProgressHistoryID)
            {
                return(BadRequest());
            }

            db.Entry(progressHistory).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProgressHistoryExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#2
0
        public IHttpActionResult GetProgressHistory(int id)
        {
            ProgressHistory progressHistory = db.ProgressHistories.Find(id);

            if (progressHistory == null)
            {
                return(NotFound());
            }

            return(Ok(progressHistory));
        }
示例#3
0
        public IHttpActionResult PostProgressHistory(ProgressHistory progressHistory)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ProgressHistories.Add(progressHistory);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = progressHistory.ProgressHistoryID }, progressHistory));
        }
示例#4
0
        public IHttpActionResult DeleteProgressHistory(int id)
        {
            ProgressHistory progressHistory = db.ProgressHistories.Find(id);

            if (progressHistory == null)
            {
                return(NotFound());
            }

            db.ProgressHistories.Remove(progressHistory);
            db.SaveChanges();

            return(Ok(progressHistory));
        }
        public IHttpActionResult PostMainTask(MainTaskUsers mainTaskUsers)
        {
            var mainTask = mainTaskUsers.mainTask;
            var users    = mainTaskUsers.users;
            var userId   = RequestContext.Principal.Identity.GetUserId();

            mainTask.IsDeleted    = false;
            mainTask.AssignedByID = userId;
            mainTask.DateAssigned = DateTime.Now;
            mainTask.Status       = db.Status.Where(s => s.Level == 0).FirstOrDefault();
            mainTask.Progress     = 0;

            ModelState.Remove("mainTaskUsers.mainTask.AssignedByID");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            foreach (var usr_id in users)
            {
                var usr = db.Users.Find(usr_id);
                mainTask.AssignedTo.Add(usr);
            }

            db.MainTask.Add(mainTask);
            db.SaveChanges();

            //Add default progress histry and comment
            var progressHistory = new ProgressHistory()
            {
                MainTaskID = mainTask.MainTaskID
            };

            db.ProgressHistories.Add(progressHistory);

            var log = new Log()
            {
                ApplicationUserID = userId,
                MainTaskID        = mainTask.MainTaskID
            };

            db.Logs.Add(log);

            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = mainTask.MainTaskID }, mainTask));
        }
        public List <AccountInfoDto> Execute(int projectId)
        {
            List <AccountInfoDto> info = new List <AccountInfoDto>();
            var accounts = dbContext.MarketingAccountDetails.Where(var => (projectId == 0) || (var.ProjectId ?? 0) == projectId).OrderBy(var => var.StatusInt).ThenBy(var => var.StartDate);

            foreach (var item in accounts)
            {
                var accountInfo = new AccountInfoDto
                {
                    StartDate   = item.StartDate.ToString("dd MMMM yy"),
                    AccountId   = item.AccountId,
                    AccountName = item.AccountName,
                    CreatedOn   = item.CreatedOn,
                    CustomId    = item.CustomAccountId,
                    Status      = item.Status,
                    ProjectId   = item.ProjectId ?? 0,
                    ProjectName = item.ProjectId == 0 ? "" : dbContext.ProjectDetails.Find(item.ProjectId).ProjectName
                };

                accountInfo.ProgressHistory = new List <ProgressHistory>();
                var history = dbContext.AccountTimeLogDetails.Where(x => x.AccountId == item.AccountId);
                if (history != null)
                {
                    foreach (var log in history)
                    {
                        var historyItem = new ProgressHistory
                        {
                            StartTime = log.StartTime,
                            EndTime   = log.EndTime,
                            UserName  = dbContext.UserPersonalDetails.FirstOrDefault(x => x.UserId == log.UserId).FirstName,
                            Comments  = log.Comment
                        };

                        if (log.Status != null)
                        {
                            switch (log.Status)
                            {
                            case 1:
                                historyItem.Status = "New";
                                break;

                            case 2:
                                historyItem.Status = "In progress";
                                break;

                            case 3:
                                historyItem.Status = "Paused";
                                break;

                            case 4:
                                historyItem.Status = "Completed";
                                break;

                            default:
                                historyItem.Status = "New";
                                break;
                            }
                        }

                        accountInfo.ProgressHistory.Add(historyItem);
                    }
                }

                var timelog = dbContext.AccountTimeLogDetails.Where(x => x.AccountId == item.AccountId).OrderByDescending(var => var.StartTime).FirstOrDefault();

                if (timelog != null)
                {
                    accountInfo.PickedBy = timelog != null?dbContext.UserPersonalDetails.FirstOrDefault(x => x.UserId == timelog.UserId).FirstName : null;

                    accountInfo.PickedOn    = timelog != null ? (DateTime?)timelog.StartTime : null;
                    accountInfo.TimeLogId   = timelog != null ? timelog.AccountTimeLogId : 0;
                    accountInfo.CompletedOn = timelog != null ? timelog.EndTime : null;
                }

                info.Add(accountInfo);
            }

            return(info.ToList());
        }