示例#1
0
        public Smlouva CreateSmlouva(Smlouva smlouva)
        {
            var context = DBContextSingleton.GetDBContext();

            //check overlaping interval
            if (context.Smlouva.FirstOrDefault(t => t.PoskytovatelZdravotnichSluzebId == smlouva.PoskytovatelZdravotnichSluzebId &&
                                               t.PojistovnaId == smlouva.PojistovnaId &&
                                               t.TypSmlouvyId == smlouva.TypSmlouvyId &&
                                               ((t.DatumDo != null && smlouva.DatumDo >= t.DatumOd && smlouva.DatumDo <= t.DatumDo) ||   //datumDo inside closed interval
                                                (t.DatumDo != null && smlouva.DatumOd <= t.DatumDo && smlouva.DatumOd >= t.DatumOd) ||   //datumOd inside closed interval
                                                (t.DatumDo == null && smlouva.DatumOd <= t.DatumOd) ||   //datumOd before not closed interval
                                                (t.DatumDo == null && smlouva.DatumDo <= t.DatumOd))      //datumDo before not closed interval
                                               ) != null)
            {
                throw new DateOverlapingException("Dates overlap importing Smlouva");
            }
            context.Smlouva.Add(smlouva);

            //close previous interval(s)
            var toUpdate = context.Smlouva.Where(t => t.PoskytovatelZdravotnichSluzebId == smlouva.PoskytovatelZdravotnichSluzebId &&
                                                 t.PojistovnaId == smlouva.PojistovnaId &&
                                                 t.TypSmlouvyId == smlouva.TypSmlouvyId &&
                                                 t.DatumDo == null).ToList();

            toUpdate.ForEach(t => t.DatumDo = smlouva.DatumOd.AddDays(-1));

            context.SaveChanges();

            return(context.Smlouva.FirstOrDefault(t => t.PoskytovatelZdravotnichSluzebId == smlouva.PoskytovatelZdravotnichSluzebId &&
                                                  t.PojistovnaId == smlouva.PojistovnaId &&
                                                  t.TypSmlouvyId == smlouva.TypSmlouvyId &&
                                                  t.DatumDo == null));
        }
示例#2
0
        private void ImportSmlouva(ImportBatch importBatch)
        {
            foreach (Smlouva item in importBatch.Smlouvy)
            {
                int typSmlouvyId = _dataConnector.GetTypSmlouvy(item.TypSmlouvy, item.DatumOd).Id;
                int pojistovnaId = _dataConnector.GetPojistovna(item.PojistovnaZkratka).Id;
                int poskytovatelZdravotnichSluzebId = _dataConnector.GetPoskytovatelZdravotnichSluzeb(item.PoskytovatelZdravotnichSluzebNazev, item.PoskytovatelZdravotnichSluzebTypPZS).Id;

                EF.Smlouva smlouva = new EF.Smlouva()
                {
                    PoskytovatelZdravotnichSluzebId = poskytovatelZdravotnichSluzebId,
                    PojistovnaId = pojistovnaId,
                    TypSmlouvyId = typSmlouvyId,
                    DatumOd      = item.DatumOd,
                    DatumDo      = item.DatumDo
                };

                _dataConnector.CreateSmlouva(smlouva);
            }
        }