Ejemplo n.º 1
0
        private static F_R_Flats defineFlatEnt(Apartment apart)
        {
            // Определение квартиры - для новой записи квартиры выполняется привязка модулей.
            F_R_Flats flatEnt  = null;
            int       revision = 0;

            if (apart.BaseStatus == EnumBaseStatus.Changed)
            {
                // Новая ревизия квартиры
                var lastRevision = entities.F_R_Flats.Local
                                   .Where(f => f.WORKNAME.Equals(apart.Name, StringComparison.OrdinalIgnoreCase))
                                   .Max(r => r.REVISION);
                revision = lastRevision + 1;
            }
            else
            {
                flatEnt = entities.F_R_Flats.Local
                          .Where(f => f.WORKNAME.Equals(apart.Name, StringComparison.OrdinalIgnoreCase))
                          .OrderByDescending(r => r.REVISION).FirstOrDefault();
            }

            if (flatEnt == null)
            {
                flatEnt = entities.F_R_Flats.Add(new F_R_Flats()
                {
                    WORKNAME = apart.Name, COMMERCIAL_NAME = "",
                    REVISION = revision, TYPE_FLAT = apart.TypeFlat
                });
                // Привязка модулей
                attachModulesToFlat(flatEnt, apart);
            }

            return(flatEnt);
        }
Ejemplo n.º 2
0
 private static void attachModulesToFlat(F_R_Flats flatEnt, Apartment apart)
 {
     foreach (var module in apart.Modules)
     {
         // Модуль
         var moduleEnt = getModuleEnt(module);
         // Квартира-модуль
         var fmEnt = getFMEnt(flatEnt, moduleEnt, module);
     }
 }
Ejemplo n.º 3
0
        private static F_nn_FlatModules getFMEnt(F_R_Flats flatEnt, F_R_Modules moduleEnt, Module module)
        {
            var fmEnt = flatEnt.F_nn_FlatModules.SingleOrDefault
                            (fm =>
                            fm.F_R_Flats == flatEnt &&
                            fm.F_R_Modules == moduleEnt &&
                            fm.LOCATION.Equals(module.LocationPoint) &&
                            fm.DIRECTION.Equals(module.Direction)
                            );

            if (fmEnt == null)
            {
                fmEnt = new F_nn_FlatModules()
                {
                    F_R_Flats   = flatEnt,
                    F_R_Modules = moduleEnt,
                    LOCATION    = module.LocationPoint,
                    DIRECTION   = module.Direction,
                    ANGLE       = module.Rotation
                };
                flatEnt.F_nn_FlatModules.Add(fmEnt);
            }
            return(fmEnt);
        }
Ejemplo n.º 4
0
 private static F_nn_FlatModules getFMEnt(F_R_Flats flatEnt, F_R_Modules moduleEnt, Module module)
 {
     var fmEnt = flatEnt.F_nn_FlatModules.SingleOrDefault
                          (fm =>
                                fm.F_R_Flats == flatEnt &&
                                fm.F_R_Modules == moduleEnt &&
                                fm.LOCATION.Equals(module.LocationPoint) &&
                                fm.DIRECTION.Equals(module.Direction)
                          );
     if (fmEnt == null)
     {
         fmEnt = new F_nn_FlatModules()
         {
             F_R_Flats = flatEnt,
             F_R_Modules = moduleEnt,
             LOCATION = module.LocationPoint,
             DIRECTION = module.Direction,
             ANGLE = module.Rotation
         };
         flatEnt.F_nn_FlatModules.Add(fmEnt);
     }
     return fmEnt;
 }
Ejemplo n.º 5
0
 private static void attachModulesToFlat(F_R_Flats flatEnt, Apartment apart)
 {
     foreach (var module in apart.Modules)
     {
         // Модуль
         var moduleEnt = getModuleEnt(module);
         // Квартира-модуль
         var fmEnt = getFMEnt(flatEnt, moduleEnt, module);
     }
 }