Exemplo n.º 1
0
        public IActionResult Submit(ProjektModel projektModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(projektModel));
            }

            for (var i = 0; i < projektModel.KlassifikationModels.Count; i++)
            {
                if (projektModel.KlassifikationModels[i].IsChecked)
                {
                    continue;
                }
                projektModel.KlassifikationModels.RemoveAt(i);
                i--;
            }
            for (var i = 0; i < projektModel.UddOmrModels.Count; i++)
            {
                if (projektModel.UddOmrModels[i].IsChecked)
                {
                    continue;
                }
                projektModel.UddOmrModels.RemoveAt(i);
                i--;
            }

            _unitOfWork.SubmitProjekt(projektModel);
            return(RedirectToAction("index"));

            //ADD
        }
Exemplo n.º 2
0
        public ProjektModel GetProjektModel()
        {
            ProjektModel projekt = new ProjektModel();

            projekt.KlassifikationModels = _klassifikation.GetAll(_connection);
            projekt.UddOmrModels         = _uddOmr.GetAll(_connection);
            return(projekt);
        }
Exemplo n.º 3
0
        public IActionResult Submit()
        {
            ProjektModel projekt = _unitOfWork.GetProjektModel();

            return(View(projekt));
        }
Exemplo n.º 4
0
        public void SubmitProjekt(ProjektModel projektModel)
        {
            StringBuilder sqlBuilder = new StringBuilder();
            string        sql;

            sqlBuilder.Append("INSERT INTO Projekt ([ProjektName], [ProjektDescription], [ProjektStatus], [ProjektEvaluationStatus], [ProjektFundingDescription],");
            sqlBuilder.Append(" [ProjektStartDate], [ProjektEndDate], [ProjektLink], [ProjektEvaluation], [ProjektProgression])");
            sqlBuilder.Append(" OUTPUT INSERTED.[ProjektId]");
            sqlBuilder.Append(" VALUES (@projektName, @projektDescription, @projektStatus, @projektEvaluationStatus, @projektFundingDescription, @projektStartDate,");
            sqlBuilder.Append(" @projektEndDate, @projektLink, @projektEvaluation, @projektProgression)");
            sql = sqlBuilder.ToString();
            using (IDbConnection connection = _connection.CreateConnection())
            {
                ProjektModel projekt = connection.QuerySingle <ProjektModel>(sql, new
                {
                    projektModel.ProjektName,
                    projektModel.ProjektDescription,
                    projektModel.ProjektStatus,
                    projektModel.ProjektEvaluationStatus,
                    projektModel.ProjektFundingDescription,
                    projektModel.ProjektStartDate,
                    projektModel.ProjektEndDate,
                    projektModel.ProjektLink,
                    projektModel.ProjektEvaluation,
                    projektModel.ProjektProgression
                });
                foreach (var klassifikation in projektModel.KlassifikationModels)
                {
                    connection.Query(
                        $"INSERT INTO ProjektKlassifikation (ProjektId, KlassifikationId) VALUES ({projekt.ProjektId}, {klassifikation.KlassifikationId})");
                }
                foreach (var uddOmr in projektModel.UddOmrModels)
                {
                    connection.Query(
                        $"INSERT INTO ProjektUddOmr (ProjektId, UddOmrId) VALUES ({projekt.ProjektId}, {uddOmr.UddOmrId})");
                }
                foreach (var omr in projektModel.OmrModels)
                {
                    var exists = connection.ExecuteScalar <bool>($"select count(1) from Omr where OmrName = '{omr.OmrName}'");
                    if (exists)
                    {
                        int id = connection.QuerySingle <int>($"SELECT omrId from Omr where omrName = '{omr.OmrName}'");
                        connection.Query(
                            $"INSERT INTO ProjektOmr (projektId, omrId) VALUES ({projekt.ProjektId}, {id})");
                    }
                    else
                    {
                        OmrModel omrModel = connection.QuerySingle <OmrModel>($"INSERT INTO Omr (omrName) OUTPUT INSERTED.[OmrId] VALUES ('{omr.OmrName}')");
                        int      id       = omrModel.OmrId;
                        connection.Query(
                            $"INSERT INTO ProjektOmr (ProjektId, OmrId) VALUES ({projekt.ProjektId}, {id})");
                    }
                }
                foreach (var deltagendeInst in projektModel.DeltagendeInstModels)
                {
                    var exists = connection.ExecuteScalar <bool>($"select count(1) from DeltagendeInst where deltagendeInstName = '{deltagendeInst.DeltagendeInstName}'");
                    if (exists)
                    {
                        int id = connection.QuerySingle <int>($"SELECT deltagendeInstId from DeltagendeInst where deltagendeInstName = '{deltagendeInst.DeltagendeInstName}'"); connection.Query(
                            $"INSERT INTO ProjektDeltagendeInst (ProjektId, DeltagendeInstId) VALUES ({projekt.ProjektId}, {deltagendeInst.DeltagendeInstId})");
                    }
                    else
                    {
                        DeltagendeInstModel deltagendeInstModel = connection.QuerySingle <DeltagendeInstModel>($"INSERT INTO DeltagendeInst (deltagendeInstName) OUTPUT INSERTED.[deltagendeInstId] VALUES ('{deltagendeInst.DeltagendeInstName}')");
                        int id = deltagendeInstModel.DeltagendeInstId;
                        connection.Query(
                            $"INSERT INTO ProjektDeltagendeInst (ProjektId, DeltagendeInstId) VALUES ({projekt.ProjektId}, {id})");
                    }
                }
                foreach (var projektHolder in projektModel.ProjektHolderModels)
                {
                    var exists = connection.ExecuteScalar <bool>($"select count(1) from ProjektHolder where projektHolderName = '{projektHolder.ProjektHolderName}'");
                    if (exists)
                    {
                        int id = connection.QuerySingle <int>($"SELECT projektHolderId from ProjektHolder where projektHolderName = '{projektHolder.ProjektHolderName}'"); connection.Query(
                            $"INSERT INTO ProjektProjektHolder (ProjektId, ProjektHolderId) VALUES ({projekt.ProjektId}, {projektHolder.ProjektHolderId})");
                    }
                    else
                    {
                        ProjektHolderModel projektHolderModel = connection.QuerySingle <ProjektHolderModel>($"INSERT INTO ProjektHolder (projektHolderName) OUTPUT INSERTED.[ProjektHolderId] VALUES ('{projektHolder.ProjektHolderName}')");
                        int id = projektHolderModel.ProjektHolderId;
                        connection.Query(
                            $"INSERT INTO ProjektProjektHolder (ProjektId, ProjektHolderId) VALUES ({projekt.ProjektId}, {id})");
                    }
                }
                //TODO: Make actual transaction.
                //TODO REFACTOR Dapper code: parameterize, use correct query methods, make repository generic methods
            }
        }