Giter Site home page Giter Site logo

fintech-test-'s Introduction

Тестовое задание

(О выполнении ниже)

Общие требования: Для реализации необходимо использовать C# (не позднее .net Core 6) и SQL (MS SQL, SQL Lite). Приложение должно быть готово для проверки:

• БД содержит необходимые данные - может генерироваться самим приложением или предоставлена отдельно.

• Конфигурационные файлы правильно настроены - строки подключения, пути должны быть "универсальными".

Задание:

Есть 2 таблицы: Product

Column Type Description
ID bigint Уникальный идентификатор (Primary Key)
Name varchar(100) Наименование изделия
Price Decimal(20,2) Цена покупки/сборки изделия

Links

Column Type Description
UpProduct bigint Ссылка на вышестоящее изделие
Product bigint Ссылка на текущее изделие
Count int Количество текущих изделий, входящих в вышестоящее

Необходимо реализовать приложение, в котором есть возможность хранения, добавления, редактирования и удаления данных из этих таблиц. Необходимо сформировать иерархический отчет в MS Excel, в котором отразить количество и стоимость изделий и общее количество входящих изделий.

Условия:

Количество изделия на первом уровне иерархии принимаем равным 1.

Стоимость изделия - количество по изделию, умноженное на цену по изделию, плюс стоимость всех изделий нижестоящих уровней.

Общее количество входящих изделий - сумма входящих изделий плюс произведение их количества на общее количество входящих изделий.

Пример отчета:

Изделие Кол-во Стоимость Цена Кол-во входящих
Изделие 1 1 3000 800 23
   Изделие 2 10 1000 1000 0
   Изделие 3 2 1000 400 4
     Изделие 5 2 600 300 0
   Изделие 4 1 600 400 6
     Изделие 2 1 100 100 0
     Изделие 6 5 100 20 0
Изделие 7 1 7000 1000 40
   Изделие 8 20 2000 100 0
   Изделие 3 10 4000 400 20

Выполнение:

Для реализации использовались .NET 6 / WPF / MVVM и MS SQL. Из доп пакетов ORM - Entity Framework Core, XmlReader - EPPlus.

• БД предоставлена отдельно .bak файлом, так же имеется mdf файл в архиве и sql файл.

• Строка подключения стоит localhost (думаю это универсальный вариант).

Для начала нужно разобраться с примером и условиями. Таблица была исправлена настолько насколько я понял.

изображение

Немного не понятно выходит с ссылками, например Изделие 3 одновременно имеет 2 родителя и имеет дочерний Изделие 5. Если проводить расчеты в Изделие 7, то дочерний Изделие 3 обладает ссылкой на дочернее в любом из случаев. (Похоже на отношение многие ко многим внутри иерархии и решение скорее сего в создании еще одной таблице, которая обновлялась бы за счет триггеров) А именно можно проосто зациклить рекурсию. Ссылка на stackoverflow

Прилагается архив файл, с базой / кодом и исполнимым файлом.

Вкладки приложения:

Вкладка#1 таблицы Product

• Добавление / редактирование / удаление изделий

изображение

Вкладка#2 таблицы Links:

• Получение новых изделий

• Добавление / редактирование / удаление ссылок изделий

изображение

Процедура отчета в MS SQL (Были решены с дубликатами на одном уровне, проблема с ссылками на разных уровнях, ибо необходимо отслеживание родителя на всех уровнях):

изображение

Вкладка#3 Отчет:

• Обноление новых ссылок

• Вывод отчета в excel

изображение

Отчет в Excel:

изображение

fintech-test-'s People

Contributors

gladn 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.