public bool RemovePriorityInQueue(long eventCustomerResultId, long createdByOrgRoleUserId)
        {
            var model = new PriorityInQueueEditModel
            {
                EventCustomerResultId = eventCustomerResultId,
                IsPriorityInQueue     = false
            };

            UpdatePriorityinQueue(model, createdByOrgRoleUserId);
            return(true);
        }
        public bool UpdatePriorityinQueue(PriorityInQueueEditModel model, long createdByOrgRoleUserId)
        {
            var piq = _priorityInQueueRepository.GetByEventCustomerResultId(model.EventCustomerResultId);

            if (model.IsPriorityInQueue)
            {
                if (piq != null)
                {
                    if (piq.NoteId == null)
                    {
                        return(true);
                    }
                    var noteObj = _notesRepository.Get(piq.NoteId.Value);
                    if (noteObj.Text != model.Note)
                    {
                        noteObj.Text = model.Note;
                        _notesRepository.Save(noteObj);
                    }
                    return(true);
                }
                var metaData = new DataRecorderMetaData(createdByOrgRoleUserId, DateTime.Now, DateTime.Now);
                var newNote  = new Notes()
                {
                    Text = model.Note, DataRecorderMetaData = metaData
                };
                newNote = _notesRepository.Save(newNote);

                piq = new PriorityInQueue
                {
                    EventCustomerResultId = model.EventCustomerResultId,
                    NoteId = newNote.Id,
                    CreatedByOrgRoleUserId  = createdByOrgRoleUserId,
                    ModifiedByOrgRoleUserId = createdByOrgRoleUserId,
                    InQueuePriority         = _priorityInQueueRepository.GetMaxPriorityInQueue(),
                    IsActive = true
                };

                piq.DateCreated = piq.DateModified = DateTime.Now;
                _priorityInQueueRepository.Save(piq);
            }
            else
            {
                //var piq = _priorityInQueueRepository.GetByEventCustomerResultId(model.EventCustomerResultId);
                if (piq != null)
                {
                    piq.InQueuePriority         = 0;
                    piq.IsActive                = false;
                    piq.DateModified            = DateTime.Now;
                    piq.ModifiedByOrgRoleUserId = createdByOrgRoleUserId;
                    _priorityInQueueRepository.Save(piq);
                }
            }
            return(true);
        }
Example #3
0
        public ActionResult SetPriorityInQueue(PriorityInQueueEditModel priorityInQueueModel)
        {
            var eventCustomerResult = _eventCustomerResultRepository.GetById(priorityInQueueModel.EventCustomerResultId);

            if (eventCustomerResult == null)
            {
                return(Json(new { Message = "You cannot mark the customer as priority in queue as there is no result data for the customer.", IsSuccess = false, IsTestSaved = false }));
            }
            if (!priorityInQueueModel.IsPriorityInQueue)
            {
                var priorityInQueueTests = _priorityInQueueRepository.GetByEventCustomerResultId(priorityInQueueModel.EventCustomerResultId);
                if (priorityInQueueTests != null && priorityInQueueTests.Any())
                {
                    return(Json(new { Message = "Customer can not be removed from priority list as some tests are marked as Proirity in queue.", IsSuccess = false, IsTestSaved = true }));
                }
            }
            _priorityInQueueService.UpdatePriorityinQueue(priorityInQueueModel, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);

            return(Json(new { Message = "Priority In queue marked successfully", IsSuccess = true, IsTestSaved = true }));
        }