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(); }
public static VWindFarm MapFromDb(DWindFarm db, IPrincipal user) { var model = new VWindFarm(); MapFromDb(model, db, user); return(model); }
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); }