示例#1
0
        /// <summary>
        /// Update language
        /// </summary>
        /// <param name="language"></param>
        /// <returns></returns>
        public void Update(LanguageDomain language)
        {
            var languageDb = _context.Language.FirstOrDefault(x => x.LanguageId == language.Id);

            languageDb.FromDomainModel(language);
            _context.SaveChanges();
        }
示例#2
0
 private void ValidateLanguageModel(LanguageDomain language)
 {
     ValidationHelper.NotNull(language, MembershipMessages.LanguageNotProvided);
     ValidationHelper.MaxLength(language.IsoCode, 5, MembershipMessages.LanguageIsCodeLenghtExceeded);
     ValidationHelper.MaxLength(language.Name, 30, MembershipMessages.LanguageNameLenghtExceeded);
     ValidationHelper.NotNullOrWhitespace(language.Name, MembershipMessages.LanguageNameNotProvided);
     ValidationHelper.NotNullOrWhitespace(language.IsoCode, MembershipMessages.LanguageIsoCodeNotProvided);
 }
示例#3
0
        /// <summary>
        /// Update language
        /// </summary>
        /// <param name="language"></param>
        /// <returns></returns>
        public void UpdateLanguage(LanguageDomain language)
        {
            ValidateLanguageModel(language);
            ValidationHelper.GreaterThanZero(language.Id, MembershipMessages.LanguageIdInvalid);
            ValidationHelper.NotNull(_languageRepository.GetById(language.Id), MembershipMessages.LanguageWithIdDoesNotExist);

            _languageRepository.Update(language);
        }
示例#4
0
        /// <summary>
        /// Add a new language
        /// </summary>
        /// <param name="language"></param>
        /// <returns></returns>
        public int Add(LanguageDomain language)
        {
            var languageDb = new Language().FromDomainModel(language);

            _context.Language.Add(languageDb);
            _context.SaveChanges();
            return(languageDb.LanguageId);
        }
        public void RunMainProcess()
        {
            LanguageDomainReport firstReport  = new LanguageDomainReport();
            LanguagePageReport   secondReport = new LanguagePageReport();
            string targetFile;

            DateTime endPeriod   = StartPeriod.AddDays(this.DaysNumber * Config.OperatorBackDays);
            DateTime startPeriod = StartPeriod;

            string directoryPath = FileData.GetDataPath(startPeriod);

            PageViewsRawData pageViewData = new PageViewsRawData(GZip, FileData, this.DaysNumber);

            pageViewData.DownloadAllPeriodsData(startPeriod, endPeriod, directoryPath);
            pageViewData.DecompressData(directoryPath);

            CollectionsData processData = new CollectionsData(domainData);

            startPeriod = StartPeriod;
            //Process each file (period) and get the ressults
            do
            {
                FileData.SetConfigurationByPeriod(startPeriod, directoryPath);
                targetFile = FileData.GetTargetFileNoExt();

                //for free memory related to last analysis
                using (FileReader fr = new FileReader(targetFile))
                {
                    Console.WriteLine(string.Concat("Processing data in file ", targetFile, "..."));

                    //container of data to analyze
                    PageViewCollection periodCollection = fr.GetDataToCollection();

                    //First report
                    Console.WriteLine("\tProcessing language and domain data for period " + startPeriod.ToShortDateString());
                    LanguageDomain languageDomain = processData.GetLanguageAndDomainCount(periodCollection);
                    languageDomain.Period = startPeriod;
                    firstReport.AddLanguageDomain(languageDomain);

                    //Second report
                    LanguagePage languagePage = processData.GetLanguagePageCount(periodCollection);
                    Console.WriteLine("\tProcessing language page data for period " + startPeriod.ToShortDateString());
                    languagePage.Period = startPeriod;
                    secondReport.AddLanguagePage(languagePage);
                }

                startPeriod = startPeriod.AddDays(Config.OperatorBackDays);
            }while (startPeriod.CompareTo(endPeriod) != 0);


            //Report the results
            Console.Clear();

            ConsoleReport.DisplayLanguageDomainCount(firstReport);
            ConsoleReport.DisplayLanguagePageMaxCount(secondReport);
        }
示例#6
0
        public void AddLanguage_Fail_NameLengthExceeded()
        {
            LanguageDomain language = new LanguageDomain()
            {
                Name      = "Engleski jezikEngleski jezikEngleski jezikEngleski jezikEngleski jezik",
                IsoCode   = "en",
                IsActive  = true,
                IsDefault = true,
                Id        = 1
            };

            _languageManipulation.AddLanguage(language);
        }
示例#7
0
        public void AddLanguage_Fail_NameInvalid()
        {
            LanguageDomain language = new LanguageDomain()
            {
                Name      = "",
                IsoCode   = "en",
                IsActive  = true,
                IsDefault = true,
                Id        = 1
            };

            _languageManipulation.AddLanguage(language);
        }
示例#8
0
        /// <summary>
        /// Add a new language
        /// </summary>
        /// <param name="language"></param>
        /// <returns></returns>
        public int AddLanguage(LanguageDomain language)
        {
            ValidateLanguageModel(language);
            //Check if code exists
            var languageWithProvidedCode = _languageRepository.GetByISOCode(language.IsoCode.SafeTrim());

            if (languageWithProvidedCode != null)
            {
                throw new NsiArgumentException(MembershipMessages.LanguageISOCodeAlreadyExists, Common.Enumerations.SeverityEnum.Warning);
            }

            return(_languageRepository.Add(language));
        }
示例#9
0
        public static Language FromDomainModel(this Language obj, LanguageDomain domain)
        {
            if (obj == null)
            {
                obj = new Language();
            }

            obj.LanguageId = domain.Id;
            obj.IsActive   = domain.IsActive;
            obj.ISOCode    = domain.IsoCode;
            obj.IsDefault  = domain.IsDefault;
            obj.Name       = domain.Name;
            return(obj);
        }
示例#10
0
        public IHttpActionResult AddLanguage(AddLanguageRequest request)
        {
            request.ValidateNotNull();

            LanguageDomain languageDomain = new LanguageDomain()
            {
                Name      = request.Name,
                IsoCode   = request.IsoCode,
                IsActive  = request.IsActive,
                IsDefault = request.IsDefault
            };

            return(Ok(new AddLanguageResponse()
            {
                Data = _languageManipulation.AddLanguage(languageDomain),
                Success = Common.Enumerations.ResponseStatus.Succeeded
            }));
        }
        public LanguageDomain GetLanguageAndDomainCount(PageViewCollection periodCollection)
        {
            LanguageDomain report = new LanguageDomain();

            var entry = periodCollection.Data.Where(e => e.ViewCount > 0)
                        .GroupBy(x => x.DomainCode)
                        .Select(y => new PageViewEntry
            {
                DomainCode = y.Key,
                ViewCount  = Convert.ToUInt32(y.Sum(s => s.ViewCount)),
            })
                        .OrderByDescending(x => x.ViewCount)
                        .FirstOrDefault();

            report.Domain       = domainData.GetDomainNameByCode(entry.DomainCode); //domain
            report.LanguageCode = domainData.GetLanguage(entry.DomainCode);         //language from domain
            report.ViewCount    = entry.ViewCount;

            return(report);
        }
示例#12
0
        public IHttpActionResult UpdateLanguage(UpdateLanguageRequest request)
        {
            request.ValidateNotNull();

            LanguageDomain languageDomain = _languageManipulation.GetLanguageById(request.Id);

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

            languageDomain.Name      = request.Name;
            languageDomain.IsoCode   = request.IsoCode;
            languageDomain.IsActive  = request.IsActive;
            languageDomain.IsDefault = request.IsDefault;

            _languageManipulation.UpdateLanguage(languageDomain);

            return(Ok(new UpdateLanguageResponse()
            {
                Success = Common.Enumerations.ResponseStatus.Succeeded
            }));
        }
示例#13
0
        public void GetLanguageById_Success()
        {
            LanguageDomain module = _languageManipulation.GetLanguageById(1);

            Assert.AreEqual(1, module.Id);
        }