public void CreateRoofType(Dtos.CreateRoofTypeInput input)
        {
            //We can use Logger, it's defined in ApplicationService class.
            //ERROR:  Logger.Info("Creating a task for input: " + input);

            //Creating a new Task entity with given input's properties
            var type = new RoofType {
                Code        = input.Code,
                Description = input.Description
            };

            //Saving entity with standard Insert method of repositories.
            _roofTypeRepository.Insert(type);

            #region CreditsHero CriteriaValues
            var creditsHeroFormat = String.Format("{0}api/services/app/Criteria/AddCriteriaValue", System.Configuration.ConfigurationSettings.AppSettings["creditsHero:WebServiceApiPrefix"]);
            //var creditsHeroFormat = "http://creditshero.azurewebsites.net/api/services/cd/Criteria/AddCriteriaValue";
            //var creditsHeroFormat = "http://localhost:6234/api/services/cd/Criteria/AddCriteriaValue";
            var timelineUrl = string.Format(creditsHeroFormat);
            CreditsHero.Common.Dtos.CriteriaValuesDto criteriaOutput = new CreditsHero.Common.Dtos.CriteriaValuesDto();

            //Serialize object to JSON
            MemoryStream jsonStream = new MemoryStream();
            CreditsHero.Common.Dtos.CreateCriteriaValuesInput criteriaInput = new CreditsHero.Common.Dtos.CreateCriteriaValuesInput()
            {
                CreditCount      = input.CreditCount,
                CriteriaRefId    = input.CriteriaRefId,
                CriteriaValuesId = 0,
                Name             = input.Description
            };
            string jsonData  = Newtonsoft.Json.JsonConvert.SerializeObject(criteriaInput);
            byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);

            HttpWebRequest creditsHeroRequest = (HttpWebRequest)WebRequest.Create(timelineUrl);
            creditsHeroRequest.ContentType   = "application/json;charset=utf-8";
            creditsHeroRequest.ContentLength = byteArray.Length;
            creditsHeroRequest.Method        = "POST";
            Stream newStream = creditsHeroRequest.GetRequestStream();
            newStream.Write(byteArray, 0, byteArray.Length);
            newStream.Close();
            WebResponse timeLineResponse = creditsHeroRequest.GetResponse();
            using (timeLineResponse)
            {
                using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                {
                    var results = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(reader.ReadToEnd());
                    criteriaOutput = new CreditsHero.Common.Dtos.CriteriaValuesDto();
                }
            }
            #endregion
        }
 public CriteriaValuesDto UpdateCriteriaValue(CreateCriteriaValuesInput input)
 {
     CriteriaValuesDto results = new CriteriaValuesDto();
     return (CriteriaValuesDto)_creditsHeroConnect.CallCreditsHeroService<CriteriaValuesDto>(results, input,
         "api/services/app/Criteria/UpdateCriteriaValue");
 }
        public void CreateRoofType(Dtos.CreateRoofTypeInput input)
        {
            //We can use Logger, it's defined in ApplicationService class.
            //ERROR:  Logger.Info("Creating a task for input: " + input);

            //Creating a new Task entity with given input's properties
            var type = new RoofType { 
                Code = input.Code,
                Description = input.Description
            };

            //Saving entity with standard Insert method of repositories.
            _roofTypeRepository.Insert(type);

            #region CreditsHero CriteriaValues
            var creditsHeroFormat = String.Format("{0}api/services/app/Criteria/AddCriteriaValue", System.Configuration.ConfigurationSettings.AppSettings["creditsHero:WebServiceApiPrefix"]);
            //var creditsHeroFormat = "http://creditshero.azurewebsites.net/api/services/cd/Criteria/AddCriteriaValue";
            //var creditsHeroFormat = "http://localhost:6234/api/services/cd/Criteria/AddCriteriaValue";
            var timelineUrl = string.Format(creditsHeroFormat);
            CreditsHero.Common.Dtos.CriteriaValuesDto criteriaOutput = new CreditsHero.Common.Dtos.CriteriaValuesDto();

            //Serialize object to JSON
            MemoryStream jsonStream = new MemoryStream();
            CreditsHero.Common.Dtos.CreateCriteriaValuesInput criteriaInput = new CreditsHero.Common.Dtos.CreateCriteriaValuesInput()
            {
                CreditCount = input.CreditCount,
                CriteriaRefId = input.CriteriaRefId,
                CriteriaValuesId = 0,
                Name = input.Description
            };
            string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(criteriaInput);
            byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);

            HttpWebRequest creditsHeroRequest = (HttpWebRequest)WebRequest.Create(timelineUrl);
            creditsHeroRequest.ContentType = "application/json;charset=utf-8";
            creditsHeroRequest.ContentLength = byteArray.Length;
            creditsHeroRequest.Method = "POST";
            Stream newStream = creditsHeroRequest.GetRequestStream();
            newStream.Write(byteArray, 0, byteArray.Length);
            newStream.Close();
            WebResponse timeLineResponse = creditsHeroRequest.GetResponse();
            using (timeLineResponse)
            {
                using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                {
                    var results = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
                    criteriaOutput = new CreditsHero.Common.Dtos.CriteriaValuesDto();
                }
            }
            #endregion
        }
        public Dtos.SubscribersSkillsDto GetSubscribersSkills(Dtos.GetSubscribersInput input)
        {
            //Get Subscribers Criteria to get Company
            var subscriberSkills = _subscribersValuesRepository.GetSubscribersCriteriaValues(input.SubscribersEmail, input.CompanyId.Value);
            Dtos.SubscribersSkillsDto results = new Dtos.SubscribersSkillsDto();
            results.SubscriberSkills = new List<KeyValuePair<Dtos.SubscribersDto, List<CriteriaValuesDto>>>();
            List<CriteriaValuesDto> subscriberValues = new List<CriteriaValuesDto>();
            Dtos.SubscribersDto subscribersDto = new Dtos.SubscribersDto();

            foreach(SubscriberCriteria subscriberSkill in subscriberSkills)
            {
                if (subscribersDto.Id == 0)
                {
                    subscribersDto = new Dtos.SubscribersDto { Email = subscriberSkill.Subscriber.Email, FullName = subscriberSkill.Subscriber.FullName, SmsNumber = subscriberSkill.Subscriber.SmsNumber, Id = subscriberSkill.Subscriber.Id };
                    subscriberValues = new List<CriteriaValuesDto>();
                }

                CriteriaValuesDto subscriberValuesDto = new CriteriaValuesDto{CreditCount = subscriberSkill.CriteriaValues.CreditCount, CriteriaRefId = subscriberSkill.CriteriaValues.CriteriaRefId, Name = subscriberSkill.CriteriaValues.Name, Id = subscriberSkill.CriteriaValues.Id};
                subscriberValues.Add(subscriberValuesDto);
            }

            KeyValuePair<Dtos.SubscribersDto, List<CriteriaValuesDto>> subscriberCriteria =
                        new KeyValuePair<Dtos.SubscribersDto, List<CriteriaValuesDto>>(subscribersDto, subscriberValues);

            results.SubscriberSkills.Add(subscriberCriteria);

            return results;
        }