private void SaveDB(VWindFarm model)
        {
            DWindFarm db;

            if (model.Id == Guid.Empty)
            {
                db         = new DWindFarm();
                db.Id      = Guid.NewGuid();
                db.Created = DateTime.UtcNow;
                db.Author  = HttpContext.User.Identity.Name;

                model.Id = db.Id;

                _ctx.DWindFarms.AddObject(db);
            }
            else
            {
                db = _ctx.DWindFarms.First(n => n.Id == model.Id);
            }

            db.Updated       = DateTime.UtcNow;
            db.Name          = model.Name ?? "";
            db.Country       = model.Country ?? "";
            db.Description   = model.Description ?? "";
            db.GeoLat        = model.GeoLat;
            db.GeoLng        = model.GeoLng;
            db.TotalCapacity = model.TotalCapacity;
            db.UrlOfficial   = model.UrlOfficial ?? "";
            db.UrlPublicWiki = model.UrlPublicWiki ?? "";
            db.IsPublic      = false;
            _ctx.SaveChanges();
        }
Beispiel #2
0
        public static VWindFarm MapFromDb(DWindFarm db, IPrincipal user)
        {
            var model = new VWindFarm();

            MapFromDb(model, db, user);
            return(model);
        }
Beispiel #3
0
        public static void MapFromDb(VWindFarm model, DWindFarm db, IPrincipal user)
        {
            var mapper = ObjectMapperManager.DefaultInstance.GetMapper <DWindFarm, VWindFarm>();

            mapper.Map(db, model);
            model.Turbines.AddRange(new VTurbine[db.DWindFarmTurbines.Count]);
            model.CanEdit = db.Author == user.Identity.Name;
        }
        private Guid CopyWindFarm(DWindFarm copiedDb)
        {
            DWindFarm db;

            db         = new DWindFarm();
            db.Id      = Guid.NewGuid();
            db.Created = DateTime.UtcNow;
            db.Author  = HttpContext.User.Identity.Name;

            _ctx.DWindFarms.AddObject(db);

            db.Updated = DateTime.UtcNow;
            var copiedDbName = copiedDb.Name;
            var copyNumber   = 1;
            var dbName       = string.Empty;

            while (true)
            {
                dbName = string.Format("{0} ({1})", copiedDbName, copyNumber);
                if (!_ctx.DWindFarms.Any(wf => (string.Compare(wf.Name, dbName, false) == 0)))
                {
                    break;
                }
                copyNumber++;
            }
            db.Name          = dbName;
            db.Country       = copiedDb.Country;
            db.Description   = copiedDb.Description;
            db.GeoLat        = copiedDb.GeoLat;
            db.GeoLng        = copiedDb.GeoLng;
            db.TotalCapacity = copiedDb.TotalCapacity;
            db.UrlOfficial   = copiedDb.UrlOfficial;
            db.UrlPublicWiki = copiedDb.UrlPublicWiki;
            db.IsPublic      = copiedDb.IsPublic;
            //db.Rating
            //db.TurbineTypeId
            //_ctx.SaveChanges();

            _ctx.DWindFarmTurbines.Where(wft => wft.WindFarmId == copiedDb.Id).ForEach(
                wft =>
            {
                _ctx.DWindFarmTurbines.AddObject(
                    new DWindFarmTurbine
                {
                    Id         = Guid.NewGuid(),
                    WindFarmId = db.Id,
                    Number     = wft.Number,
                    X          = wft.X,
                    Y          = wft.Y,
                    Z          = wft.Z
                }
                    );
            }
                );
            _ctx.SaveChanges();

            return(db.Id);
        }