public void SwapDetails(SurveyTemplateQuestion moved, SurveyTemplateQuestion displaced)
        {
            short movedNewNumber     = displaced.RowNumber;
            short displacedNewNumber = moved.RowNumber;

            moved.RowNumber     = movedNewNumber;
            displaced.RowNumber = displacedNewNumber;

            SetAsModified();
        }
        public void AddDetail(SurveyTemplateQuestion item)
        {
            item.SurveyTemplateId = this.Id;
            item.SurveyTemplate   = this;
            item.IsActive         = true;
            item.CreationUser     = System.Threading.Thread.CurrentPrincipal.Identity.Name;
            item.CreationDate     = DateTime.Now;

            Details.Add(item);
            SetAsModified();
        }
        public bool AssignAreaSection(SurveyTemplateQuestion detail, AreaSection areaSection)
        {
            bool exists = Details.Any(e => e.AreaSectionId.Equals(areaSection.Id) && !e.IsDeletedState);

            //if (exists)
            //{
            //    return false;
            //}

            detail.AreaSectionId = areaSection.Id;
            detail.AreaSection   = areaSection;
            SetAsModified();

            return(!exists);
        }
        public void RemoveDetail(SurveyTemplateQuestion item)
        {
            if (item.PersistentState == PersistentState.Added)
            {
                Details.Remove(item);
            }
            else
            {
                item.SetAsDeleted();
            }

            //Renumber
            int removedRowMumber = item.RowNumber;

            if (removedRowMumber == 0)
            {
                return;
            }

            var tmpDetails = this.Details
                             .Where(d => !d.IsDeletedState)
                             .Where(d => d.RowNumber > removedRowMumber)
                             .OrderBy(d => d.RowNumber)
                             .ToList();

            int newValue = removedRowMumber;

            tmpDetails.ForEach(nextItem =>
            {
                nextItem.RowNumber = (short)newValue;
                newValue           = newValue + 1;
            });

            CalculateTotalWeight();
            SetAsModified();
        }
 public void AssignQuestion(SurveyTemplateQuestion detail, Question question)
 {
     detail.QuestionId = question.Id;
     detail.Question   = question;
     SetAsModified();
 }
 public void ConfigureDetail(SurveyTemplateQuestion detail, Question question, AreaSection areaSection)
 {
     AssignQuestion(detail, question);
     AssignAreaSection(detail, areaSection);
 }
 public void SetDetailRowNumber(SurveyTemplateQuestion item, int newRowNumber)
 {
     item.RowNumber = (short)newRowNumber;
     SetAsModified();
 }