public static MedicalHistoryConditionModel ToModel(this MedicalHistoryConditionViewModel entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var model = new MedicalHistoryConditionModel
            {
                MedicalHistoryConditionID = entity.MedicalHistoryConditionID,
                MedicalHistoryID          = entity.MedicalHistoryID,
                MedicalConditionID        = entity.MedicalConditionID,
                HasCondition = entity.HasCondition,
                IsActive     = entity.IsActive,
                Details      = new List <MedicalHistoryConditionDetailModel>(),
                ModifiedOn   = entity.ModifiedOn
            };

            entity.Details.ForEach(delegate(MedicalHistoryConditionDetailViewModel conditionDetail)
            {
                var transformedModel = conditionDetail.ToModel();
                model.Details.Add(transformedModel);
            });

            return(model);
        }
        public static MedicalHistoryConditionViewModel ToViewModel(this MedicalHistoryConditionModel entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var model = new MedicalHistoryConditionViewModel
            {
                MedicalHistoryConditionID = entity.MedicalHistoryConditionID,
                MedicalHistoryID          = entity.MedicalHistoryID,
                MedicalConditionID        = entity.MedicalConditionID,
                HasCondition = entity.HasCondition,
                IsActive     = entity.IsActive,
                Details      = new List <MedicalHistoryConditionDetailViewModel>(),
                ModifiedOn   = entity.ModifiedOn
            };

            if (entity.Details != null)
            {
                var rowNum = 0;
                entity.Details.ForEach(delegate(MedicalHistoryConditionDetailModel conditionDetail)
                {
                    var transformedModel       = conditionDetail.ToViewModel();
                    transformedModel.RowNumber = rowNum;
                    rowNum++;
                    model.Details.Add(transformedModel);
                });

                var lastMedicalHistoryConditionDetailViewModel = model.Details.LastOrDefault();
                if (lastMedicalHistoryConditionDetailViewModel != null)
                {
                    lastMedicalHistoryConditionDetailViewModel.IsLast = true;
                }

                var firstMedicalHistoryConditionDetailViewModel = model.Details.FirstOrDefault();
                if (firstMedicalHistoryConditionDetailViewModel != null)
                {
                    firstMedicalHistoryConditionDetailViewModel.IsFirst = true;
                }

                model.RowCount = model.Details.Any() ? model.Details.Count() : 1;
            }

            return(model);
        }