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 }
public ProjektModel GetProjektModel() { ProjektModel projekt = new ProjektModel(); projekt.KlassifikationModels = _klassifikation.GetAll(_connection); projekt.UddOmrModels = _uddOmr.GetAll(_connection); return(projekt); }
public IActionResult Submit() { ProjektModel projekt = _unitOfWork.GetProjektModel(); return(View(projekt)); }
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 } }