public IHttpActionResult Post(Guid formTemplateId, MetricGroupDTO metricGroupDto)
        {
            if (formTemplateId == Guid.Empty)
            {
                return(BadRequest("form template id is empty"));
            }

            var formTemplate = GetFormTemplate(formTemplateId);

            if (formTemplate == null)
            {
                return(NotFound());
            }

            var group = Mapper.Map <MetricGroup>(metricGroupDto);

            group.FormTemplateId = formTemplateId;

            try
            {
                UnitOfWork.MetricGroupsRepository.InsertOrUpdate(group);
                UnitOfWork.MetricGroupsRepository.Save();

                MemoryCacher.DeleteStartingWith(CACHE_KEY);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Put(Guid formTemplateId, Guid id, [FromBody] MetricGroupDTO metricGroupDto)
        {
            if (formTemplateId == Guid.Empty)
            {
                return(BadRequest("form template id is empty"));
            }

            if (id == Guid.Empty)
            {
                return(BadRequest("metric group id is empty"));
            }

            var surveyProvider = new SurveyProvider(CurrentOrgUser, UnitOfWork, onlyPublished: false);

            var group = surveyProvider.GetFormTemplate(formTemplateId)
                        .MetricGroups
                        .Where(g => g.Id == id)
                        .SingleOrDefault();

            if (group == null)
            {
                return(NotFound());
            }

            try
            {
                Mapper.Map(metricGroupDto, group);
                UnitOfWork.MetricGroupsRepository.Save();

                MemoryCacher.DeleteStartingWith(CACHE_KEY);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }