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(); }
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}!"); } } }