Пример #1
0
        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);
        }
Пример #2
0
        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);
        }