Ejemplo n.º 1
0
        private IssueLogInvolvedPersonListingModel BuildAssignedIssueModel(IssueLogInvolvedPerson issuelogInvolvedPerson)
        {
            var p = issuelogInvolvedPerson;
            var otherInvolvedPersons = _involvedPersonService.GetAllByIssueLogId(p.IssueLog.Id).ToList().Where(x => x.InvolvedPerson.Id != p.InvolvedPerson.Id);
            var model = new IssueLogInvolvedPersonListingModel
            {
                Id           = p.Id,
                CompanyName  = p.IssueLog.Project.Company.Name,
                ProjectName  = p.IssueLog.Project.Name,
                ExpectedDate = p.IssueLog.IssueDate,
                Title        = p.IssueLog.Header,
                Detail       = p.IssueLog.Body,
                Note         = p.IssueLog.Note,
                Priority     = p.IssueLog.Priority.ToString(),
                IssueType    = p.IssueLog.IssueType.ToString(),
                ReceiveDate  = p.ReceiveDate != DateTime.MinValue ? (DateTime?)p.ReceiveDate : null,
                IsStart      = p.ReceiveDate != DateTime.MinValue ? false : true
            };

            model.OtherWorkingStatus = new List <string>();
            foreach (var involvedPerson in otherInvolvedPersons)
            {
                model.OtherWorkingStatus.Add(involvedPerson.InvolvedPerson.UserName + (!involvedPerson.IsComplete ? (involvedPerson.ReceiveDate != DateTime.MinValue ? " has started working on this task." : " hasn't started working on this task yet") : " has completed the assigned task"));
            }
            return(model);
        }
Ejemplo n.º 2
0
        private IEnumerable <IssueLogInvolvedPersonListingModel> BuildIssueLogInvolvedPerson(IEnumerable <IssueLogInvolvedPerson> involvedPersons)
        {
            var model = new List <IssueLogInvolvedPersonListingModel>();

            foreach (var ip in involvedPersons)
            {
                var person = new IssueLogInvolvedPersonListingModel
                {
                    Id           = ip.Id,
                    UserId       = ip.InvolvedPerson.Id,
                    UserName     = ip.InvolvedPerson.UserName,
                    EmailAddress = ip.InvolvedPerson.Email,
                    Designation  = ip.InvolvedPerson.Designation != null ? ip.InvolvedPerson.Designation.Name : string.Empty
                };
                model.Add(person);
            }
            return(model);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> View(IssueLogInvolvedPersonListingModel model)
        {
            var issuelogInvolvedPerson = _involvedPersonService.GetById(model.Id);
            var userId       = _userManager.GetUserId(User);
            var user         = _userManager.FindByIdAsync(userId).Result;
            var notification = new Notification();

            if (model.IsStart)
            {
                issuelogInvolvedPerson.ReceiveDate  = DateTime.Now;
                issuelogInvolvedPerson.ExpectedHour = model.ExpectedHour;

                notification = new Notification
                {
                    UserFrom      = user.Id,
                    UserFromImage = user.ProfileImageUrl,
                    UserTo        = issuelogInvolvedPerson.IssueLog.EntryBy.Id,
                    Header        = issuelogInvolvedPerson.IssueLog.Project.Name + "(" + issuelogInvolvedPerson.IssueLog.Project.Company.Name + ")",
                    Message       = user.UserName + " has started working on " + issuelogInvolvedPerson.IssueLog.Header + ". Expected Hour is " + model.ExpectedHour,
                    IsRead        = false
                };
            }
            else
            {
                issuelogInvolvedPerson.IsComplete      = true;
                issuelogInvolvedPerson.HoursToComplete = model.HoursToComplete;
                issuelogInvolvedPerson.SubmitDate      = DateTime.Now;

                notification = new Notification
                {
                    UserFrom      = user.Id,
                    UserFromImage = user.ProfileImageUrl,
                    UserTo        = issuelogInvolvedPerson.IssueLog.EntryBy.Id,
                    Header        = issuelogInvolvedPerson.IssueLog.Project.Name + "(" + issuelogInvolvedPerson.IssueLog.Project.Company.Name + ")",
                    Message       = user.UserName + " has completed this task - " + issuelogInvolvedPerson.IssueLog.Header + ". Time taken : " + model.HoursToComplete + " hours",
                    IsRead        = false
                };
            }
            await _involvedPersonService.UpdateIssueLog(issuelogInvolvedPerson);

            _notificationService.Create(notification);
            return(RedirectToAction("Index", "InvolvedPerson", new { id = 0 }));
        }