Git Product home page Git Product logo

tavrida_task's Introduction

ЗАДАЧА:

В БД имеется две таблицы в которых хранятся данные по компаниям и их филиалам. Каждый филиал относится к одной из компаний. Все компании имеют обязательный бинарный признак, который разделяет их на две группы.

Структура Проекта

server:

Test.TavridaTask - слой тестов
Infrastructure.TavridaTask - слой подключение к инфрастуктуре + мигратор
Core.TavridaTask - слой бизнес логики
Api.TavridaTask - слой апи

client:
Стандартный npx-react-create-app
Css - aphrodite

Структура БД:

Companies - таблица компаний:
Id - идентификатор
Name - наименование
BinarySign - бинарный признак

CompaniesBranches - таблица филиалов компаний:
Id - идентификатор
Name - наименование
CompanyId - компания

Требуется:

1 Подготовить web-приложение (MVC, React) с использованием .Net Core (C#), которое будет работать с БД через ORM Entity Framework (сode first).

2 Реализовать в нем страницу с данными по всем филиалам в виде таблицы: «Филиал», «Компания Филиала», «Группа Компании», «Связанные филиалы» где, для каждого филиала в колонке «Связанные филиалы» через запятую отображались бы филиалы его компании, если компания входит в первую группу, либо филиалы всех компаний, если компания филиала принадлежит второй группе.
Выборка для страницы должна быть выполнена в виде LINQ запроса

3 Помимо Linq запроса необходимо подготовить T-SQL запрос, для аналогичной информации одним запросом к БД (можно без группировки по ее филиалу).

Запрос должен содержать только такие инструкции, которые позволят использовать его в представлениях и процедурах MS SQL Server 2012 или младше.

Требования:

Код должен быть лаконичный, простой для понимания (не требующий комментариев и пояснений) и оптимальный с точки зрения производительности.

Исходные должны быть доступны на GitHub, а решения открываться в IDE Visual Studio или VS Code.

[идеально если будет] Ссылка на рабочую версию приложения. .

SQL Query

select cb.Name                             as Name,
       c.Name                              as CompanyName,
       c.BinarySign,
       STUFF((select ', ' + STR(_cb.Id)
              from CompanyBranches as _cb
              where c.BinarySign = 0 and _cb.CompanyId = c.Id
                or c.BinarySign = 1
              FOR XML PATH('')), 1, 1, '') as BranchNames
from Companies as c
         join CompanyBranches cb on c.Id = cb.CompanyId

Для использование миграций в проекте Infrastructure.TavridaTask создана DesignTimeDbContextFactory, которая принимает аргумент connection string

tavrida_task's People

Contributors

vastos91106 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.