public void CanRetrieveListOfTechnicalSpecifications() { List <TechnicalSpecification> tslist = new List <TechnicalSpecification>(); TechnicalSpecification tspec1 = new TechnicalSpecification() { Description = "Spec1", Ticked = true }; TechnicalSpecification tspec2 = new TechnicalSpecification() { Description = "Spec2", Ticked = false }; TechnicalSpecification tspec3 = new TechnicalSpecification() { Description = "Spec3", Ticked = true }; tslist.Add(tspec1); tslist.Add(tspec2); tslist.Add(tspec3); TechnicalSpecificationViewModel vm = new TechnicalSpecificationViewModel(tslist); Assert.AreEqual(vm.TechnicalSpecifications[0].Description, "Spec1"); Assert.AreEqual(vm.TechnicalSpecifications[0].Ticked, true); Assert.AreEqual(vm.TechnicalSpecifications[1].Description, "Spec2"); Assert.AreEqual(vm.TechnicalSpecifications[1].Ticked, false); Assert.AreEqual(vm.TechnicalSpecifications[2].Description, "Spec3"); Assert.AreEqual(vm.TechnicalSpecifications[2].Ticked, true); }
private void GetAllTechnicalSpecificationForCase(Case @case) { Dictionary <ITechnicalSpecification, Category> listOfTechnicalSpecifications = new Dictionary <ITechnicalSpecification, Category>(); try { conn.Open(); SqlCommand command = new SqlCommand("CH_SP_GetAllTechnicalSpecificationOfACase", conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@CaseYear", @case.DateOfCreation.Year)); command.Parameters.Add(new SqlParameter("@CaseNumber", @case.CaseNumber)); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { string description = reader.GetString(0); bool isTicked = reader.GetBoolean(1); int categoryId = reader.GetInt32(2) - 1; ITechnicalSpecification iTechSpec = new TechnicalSpecification(); iTechSpec.Description = description; iTechSpec.Editable = isTicked; listOfTechnicalSpecifications.Add(iTechSpec, (Category)categoryId); } } reader.Close(); reader.Dispose(); } catch (SqlException) { } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } foreach (KeyValuePair <ITechnicalSpecification, Category> kvp in listOfTechnicalSpecifications) { @case.GetExpenseCategory(kvp.Value).TechnicalSpecifications.Add(kvp.Key); } }
/// <summary> /// Insert update the technical specifications /// </summary> /// <param name="viewModel"></param> /// <returns></returns> public IResult ManageMaterialTechnicalSpecs(TechSpecsViewModel viewModel) { var result = new Result { Status = Status.Success }; try { if (string.IsNullOrEmpty(viewModel.TechSpecId) || viewModel.TechSpecId == null) { viewModel.TechSpecId = null; var technicalSpecification = new TechnicalSpecification(); technicalSpecification.MapFromViewModel(viewModel, (ClaimsIdentity)_principal.Identity); technicalSpecification.TechSpecId = ObjectId.GenerateNewId(); var updateDefinition = Builders <Material> .Update.Set(x => x.ModifiedDate, GenericHelper.CurrentDate).AddToSet(t => t.TechnicalSpecifications, technicalSpecification); _materialRepository.UpdateOne(t => t.MaterialId.Equals(ObjectId.Parse(viewModel.RegardingId)), updateDefinition); result.Body = technicalSpecification; result.Message = MaterialNotification.TechSpecCreated; result.Operation = Operation.Create; } else { var updateDefinition = Builders <Material> .Update.Set(x => x.ModifiedDate, GenericHelper.CurrentDate).Set(t => t.TechnicalSpecifications[-1].TechSpecName, viewModel.TechSpecName). Set(t => t.TechnicalSpecifications[-1].Value, viewModel.Value).Set(t => t.TechnicalSpecifications[-1].IncludeInOverview, viewModel.IncludeInOverview); _materialRepository.UpdateOne( t => t.MaterialId.Equals(ObjectId.Parse(viewModel.RegardingId)) && t.TechnicalSpecifications.Any(o => o.TechSpecId.Equals(ObjectId.Parse(viewModel.TechSpecId))), updateDefinition); result.Body = viewModel; result.Message = MaterialNotification.TechSpecUpdated; result.Operation = Operation.Update; } } catch (Exception e) { result.Message = e.Message; result.Status = Status.Fail; } return(result); }