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);
        }
 public PriorityInQueue Save(PriorityInQueue domainObject)
 {
     using (var adapter = PersistenceLayer.GetDataAccessAdapter())
     {
         var entity = Mapper.Map <PriorityInQueue, PriorityInQueueEntity>(domainObject);
         if (!adapter.SaveEntity(entity, true))
         {
             throw new PersistenceFailureException();
         }
         return(AutoMapper.Mapper.Map <PriorityInQueueEntity, PriorityInQueue>(entity));
     }
 }
Beispiel #3
0
        public CustomerEventPriorityInQueueData Save(CustomerEventPriorityInQueueData domainObject, long eventId, long customerId, long testId, long createdByOrgRoleUserId)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var isSaved = false;
                var entity  = Mapper.Map <CustomerEventPriorityInQueueData, CustomerEventPriorityInQueueDataEntity>(domainObject);

                if (domainObject.CustomerEventScreeningTestID < 1)
                {
                    var linqMetaData = new LinqMetaData(adapter);
                    var id           = (from ecr in linqMetaData.EventCustomerResult
                                        join cest in linqMetaData.CustomerEventScreeningTests on ecr.EventCustomerResultId equals cest.EventCustomerResultId
                                        where ecr.EventId == eventId && ecr.CustomerId == customerId && cest.TestId == testId
                                        select cest.CustomerEventScreeningTestId).SingleOrDefault();
                    var inDb = GetByCustomerEventScreeningTestIdWithoutIsActive(id);

                    if (inDb != null)
                    {
                        entity.IsNew    = false;
                        entity.IsActive = true;
                    }


                    entity.CustomerEventScreeningTestId = id;
                    isSaved = true;
                }

                if (!adapter.SaveEntity(entity, true))
                {
                    throw new PersistenceFailureException();
                }
                if (isSaved)
                {
                    var piq = _priorityInQueueRepository.GetByEventIdCustomerId(eventId, customerId);
                    if (piq == null)
                    {
                        var ecrID = _eventCustomerResultRepository.GetByCustomerIdAndEventId(customerId, eventId);
                        if (ecrID != null)
                        {
                            var metaData = new DataRecorderMetaData(createdByOrgRoleUserId, DateTime.Now, DateTime.Now);
                            var newNote  = new Notes()
                            {
                                Text = "", DataRecorderMetaData = metaData
                            };
                            newNote = _notesRepository.Save(newNote);

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

                            piq.DateCreated = piq.DateModified = DateTime.Now;
                            _priorityInQueueRepository.Save(piq);
                        }
                    }
                }

                return(Mapper.Map <CustomerEventPriorityInQueueDataEntity, CustomerEventPriorityInQueueData>(entity));
            }
        }