コード例 #1
0
        public ActionResult Save(string isoCode, Guid fileId)
        {
            var dal    = new LocanDal();
            var apiKey = dal.GetUserByFileId(fileId).ApiKey;
            ILocanTranslator bingTranslator = new BingLocanTranslator(apiKey);
            Language         language       = Language.GetLanguages(apiKey).SingleOrDefault(l => l.IsoCode.Equals(isoCode, StringComparison.OrdinalIgnoreCase));

            var phrases = dal.GetPhrases(p => p.FileId == fileId).ToList();
            IDictionary <string, string> result = new Dictionary <string, string>();

            foreach (string key in Request.Form)
            {
                var phrase = phrases.SingleOrDefault(p => p.TranslateKey == key);
                if (phrase != null)
                {
                    result.Add(phrase.StringToTranslate, Request.Form[key]);
                }
            }

            ILanguage sourceLanguage = bingTranslator.DetectLanguage(phrases.First().StringToTranslate);
            ILanguage destLanguage   = new Locan.Translate.BaseLanguage(isoCode);

            bingTranslator.AddCustomTranslations(sourceLanguage, destLanguage, result);

            return(View("Done"));
        }
コード例 #2
0
        public ViewResult Index(Guid fileId)
        {
            var dal    = new LocanDal();
            var apiKey = dal.GetUserByFileId(fileId).ApiKey;

            return(View(Language.GetLanguages(apiKey)));
        }
コード例 #3
0
        public static IEnumerable <TranslationItem> GetTranslationItems(string isoCode, Guid fileId)
        {
            var dal     = new LocanDal();
            var apiKey  = dal.GetUserByFileId(fileId).ApiKey;
            var phrases = dal.GetPhrases(p => p.FileId == fileId).ToList();


            return(Convert(phrases, apiKey, isoCode));
        }
コード例 #4
0
ファイル: LocanService.cs プロジェクト: sayedihashimi/locan
        public Guid GetUserId(string apiKey)
        {
            if (string.IsNullOrWhiteSpace(apiKey))
            {
                throw new ArgumentNullException("apiKey");
            }
            LocanDal dal  = new LocanDal();
            User     user = dal.GetUniqueUser(u => string.Compare(apiKey, u.ApiKey, StringComparison.OrdinalIgnoreCase) == 0, true);

            return(user.Id);
        }
コード例 #5
0
ファイル: LocanService.cs プロジェクト: sayedihashimi/locan
        public Guid AddPhrasesForTranslation(HttpRequestMessage request)
        {
            // From the POST message we need to pick off the following properties
            //  UserId
            //  FileId
            //  Array of TranslateKey / StringToTranslate / Comment

            string       fileContents = request.Content.ReadAsString();
            LocanWebFile webFile      = LocanWebFile.BuildFrom(fileContents);
            LocanDal     dal          = new LocanDal();
            Guid         fileId       = dal.GetOrCreateIdForFile(webFile.UserId, webFile.Filename, webFile.ProjectName);

            // delete all old phrases
            dal.DeleteAllPhrasesfor(fileId);

            // now add the phrases
            dal.AddPhrasesToFile(fileId, webFile.Rows);

            return(fileId);
        }
コード例 #6
0
ファイル: LocanService.cs プロジェクト: sayedihashimi/locan
        public Guid RegisterUser(string apiKey)
        {
            if (string.IsNullOrWhiteSpace(apiKey))
            {
                throw new ArgumentNullException("apiKey");
            }

            User newUser = new User {
                ApiKey = apiKey
            };

            // see if the user exists if so get that ID if not create a new one
            LocanDal dal = new LocanDal();

            User existingUser = dal.GetUniqueUser(user => user.ApiKey == apiKey, false);

            if (existingUser == null)
            {
                existingUser = dal.AddUser(newUser);
            }

            return(existingUser.Id);
        }