public ActionResult Index(UserLanguages userLanguages, string group)
        {
            if (WebSettingsConfig.Instance.IsSectionForbidden(SectionId.VisualDictionary))
            {
                return(RedirectToAction("Index", RouteConfig.MAIN_CONTROLLER_NAME));
            }

            if (UserLanguages.IsInvalid(userLanguages))
            {
                return(RedirectToAction("Index", RouteConfig.VISUAL_DICTIONARIES_CONTROLLER_NAME));
            }
            RepresentationForUser representationForUser = GetRepresentationForUser(userLanguages, group);

            if (representationForUser == null)
            {
                return(RedirectToActionPermanent("Index", RouteConfig.VISUAL_DICTIONARIES_CONTROLLER_NAME));
            }

            long languageId                       = WebSettingsConfig.Instance.GetLanguageFromId();
            var  crossReferencesQuery             = new CrossReferencesQuery(languageId);
            List <CrossReference> crossReferences = crossReferencesQuery.GetReferences(representationForUser.Id,
                                                                                       CrossReferenceType.
                                                                                       VisualDictionary);
            var model = new VisualDictionaryModel(userLanguages, representationForUser);

            model.CrossReferencesModel = new CrossReferencesModel(representationForUser.Title,
                                                                  CrossReferenceType.VisualDictionary, crossReferences);
            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult ShowAll(UserLanguages userLanguages,
                                    GroupForUser group,
                                    CrossReferenceType crossReferenceType)
        {
            if (WebSettingsConfig.Instance.IsSectionForbidden(SectionId))
            {
                return(RedirectToAction("Index", RouteConfig.MAIN_CONTROLLER_NAME));
            }

            if (UserLanguages.IsInvalid(userLanguages) || group == null)
            {
                return(GetRedirectToGroups());
            }
            GroupModel model = GetModel(userLanguages, group);

            if (model.IsInvalid())
            {
                return(GetRedirectToGroups());
            }

            long languageId                       = WebSettingsConfig.Instance.GetLanguageFromId();
            var  crossReferencesQuery             = new CrossReferencesQuery(languageId);
            List <CrossReference> crossReferences = crossReferencesQuery.GetReferences(group.Id, crossReferenceType);

            model.CrossReferencesModel = new CrossReferencesModel(group.Name, crossReferenceType, crossReferences);
            return(View("All", model));
        }
Exemplo n.º 3
0
        public void Fill(LanguageShortName languageShortName, string fileName)
        {
            long languageId =
                new LanguagesQuery(LanguageShortName.Unknown, LanguageShortName.Unknown).GetByShortName(languageShortName).Id;
            var crossReferencesQuery = new CrossReferencesQuery(languageId);

            bool hasErrors = false;
            var  ids       = new HashSet <long>();
            var  csvReader = new CsvReader(fileName);
            int  i         = 0;

            do
            {
                i++;
                string[] line = csvReader.ReadLine();
                if (line == null)
                {
                    break;
                }

                if (line.Length != 4)
                {
                    ShowError(
                        "Некорректное кол-во полей в строке {0}: Ожидаем 4, а полей {1}. Для продолжения нажмите Enter...",
                        i, line.Length);
                    continue;
                }

                string             source          = GetTrimmed(line[0]);
                CrossReferenceType sourceType      = GetCrossType(line[1]);
                string             destination     = GetTrimmed(line[2]);
                CrossReferenceType destinationType = GetCrossType(line[3]);

                if (string.IsNullOrEmpty(source) || string.IsNullOrEmpty(destination) ||
                    sourceType == CrossReferenceType.Unknown || destinationType == CrossReferenceType.Unknown)
                {
                    ShowError("Некорректные данные в строке {0}: {1}. Для продолжения нажмите Enter...", i,
                              string.Join(";", line));
                    continue;
                }

                long id = crossReferencesQuery.Add(source, sourceType, destination, destinationType);
                if (IdValidator.IsValid(id))
                {
                    ids.Add(id);
                    Console.WriteLine("Обработана строка под номером {0}", i);
                }
                else
                {
                    hasErrors = true;
                    ShowError(
                        "Не удалось сохранить данные из строки {0}. Источник {1}, тип источника {2}, приемник {3}, тип источника {4}. Для продолжения нажмите Enter...",
                        i, source, sourceType, destination, destinationType);
                }
            } while (true);
            if (!hasErrors)
            {
                crossReferencesQuery.RemoveAllExceptIds(ids);
            }

            Console.WriteLine("С ссылками все");
            Console.ReadLine();
        }