Пример #1
0
        public void UpdateMoguciDobitak(long listicId)
        {
            var listic           = GetListic(listicId);
            var okladaRepository = OkladaRepositoryFactory.Create();
            var oklade           = okladaRepository.GetOkladas(listicId);

            listic.MoguciDobitak = CalculateMoguciDobitak(listicId, listic.IznosUplate, oklade);

            Update(listic);
            Save();
        }
Пример #2
0
        public void ValidateMoguciDobitak(long listicId, double?moguciDobitak, UIModel.Oklada[] oklade)
        {
            var okladaRepository = OkladaRepositoryFactory.Create();
            var identicalListici = new List <UIModel.Listic>();

            if (moguciDobitak.HasValue)
            {
                var listici = GetListics(null, null);

                foreach (var listic in listici)
                {
                    if (listic.ListicId != listicId)
                    {
                        var okladeNaDrugomListicu   = okladaRepository.GetOkladas(listic.ListicId);
                        int countOfIdenticalOkladas = 0;

                        foreach (var oklada in oklade)
                        {
                            if (okladeNaDrugomListicu.Any(o => o.PonudaId == oklada.PonudaId))
                            {
                                countOfIdenticalOkladas++;
                            }
                        }

                        if (countOfIdenticalOkladas == oklade.Length)
                        {
                            identicalListici.Add(listic);
                        }
                    }
                }

                double zbrojMogucihDobitaka = moguciDobitak ?? 0;

                foreach (var listic in identicalListici)
                {
                    if (listic.MoguciDobitak.HasValue)
                    {
                        zbrojMogucihDobitaka += listic.MoguciDobitak.Value;
                    }
                }

                if (zbrojMogucihDobitaka > Constants.MaxSumOfDobitakOnIdenticalListic)
                {
                    throw new Exception($"Zbroj mogućih dobitaka na identičnim listićima ne smije biti veći od {Constants.MaxSumOfDobitakOnIdenticalListic}!");
                }
            }
        }