/// <summary> /// 把ec的内容拷贝到element /// </summary> /// <param name="ec"></param> /// <returns></returns> public static Element getElement(ElementCell ec) { Element ele = new Element(ec.stringField, ec.intField, ec.doubleField, ec.dateField, ec.longField); return(ele); }
public void insert(string[] fieldNames, object[] values) { if (!isSingle) { throw new Exception(String.Format("不可输入多个表")); } List <Element> ele = new List <Element>(); List <long> ID = new List <long>(); ElementCell elecell = FieldType.setValueCell(values[0], this.columnTypes.ElementAt(columnNames.IndexOf(fieldNames[0]))); Global.CloudStorage.SaveElementCell(elecell.CellID, elecell); ID.Add(elecell.CellID); for (int i = 1; i < fieldNames.Length; i++) { Element temp = FieldType.setValue(values[i], this.columnTypes.ElementAt(columnNames.IndexOf(fieldNames[i]))); ele.Add(temp); } List <long> ids = Global.CloudStorage.InsertElementToDatabaseServer(0, new InsertMessageWriter(ele)).cellIds; for (int k = 0; k < ids.Count; k++) { ID.Add(ids[k]); } this.cellIds.Add(ID); long tableId = Database.getCurrentDatabase().getTableIdList()[Database.getCurrentDatabase().getTableNameList().IndexOf(tableNames [0])]; TableHeadCell thc = new TableHeadCell(this.tableNames[0], this.columnNames, this.columnTypes, this.primaryIndexs, this.defaultValues, this.cellIds); Global.CloudStorage.SaveTableHeadCell(tableId, thc); }
// PUT odata/ElementCell(5) public virtual async Task <IHttpActionResult> Put([FromODataUri] int key, ElementCell elementCell) { if (key != elementCell.Id) { return(BadRequest()); } try { await MainUnitOfWork.UpdateAsync(elementCell); } catch (DbUpdateConcurrencyException) { if (await MainUnitOfWork.All.AnyAsync(item => item.Id == elementCell.Id)) { return(Conflict()); } else { return(NotFound()); } } return(Ok(elementCell)); }
public override UITableViewCell GetCell(UITableView tv) { var cell = tv.DequeueReusableCell(_cellKey) as ElementCell; if (cell == null) { cell = new ElementCell(_title, _image); } else { cell.Update(_title, _image); } return cell; }
public override void InsertElementHandler(InsertMessageReader request, InsertResponceWriter response) { List <long> cellIds = new List <long>(); for (int i = 0; i < request.ele.Count; i++) { ElementCell elecell = FieldType.getElementCell(request.ele[i]); cellIds.Add(elecell.CellID); Global.LocalStorage.SaveElementCell(elecell.CellID, elecell); } response.serverId = Global.MyServerId; response.cellIds = cellIds; }
private void UpdateField(Object Message) { UpdateFields uf = (UpdateFields)Message; List <Element> row = Global.CloudStorage.GetRowToDatabaseServer( Global.CloudStorage.GetServerIdByCellId(uf.cellId[0]), new GetRowMessageWriter(uf.cellId)).row; List <Object> values = FieldType.getValues(row, uf.typeList); int index1 = this.columnNames.IndexOf(uf.fildNames[0]); int index2 = this.columnNames.IndexOf(uf.fildNames[1]); int serverID; if (uf.con.getResult(values)) { Element ele1 = new Element { }; using (var req = new GetElementMessageWriter(uf.cellId[index1])) { serverID = Global.CloudStorage.GetServerIdByCellId(uf.cellId[index1]); using (var responce = Global.CloudStorage.GetElementToDatabaseServer(serverID, req)) { ele1 = responce.ele; ele1.intField = uf.Value1; } } Element ele2 = new Element { }; using (var req = new GetElementMessageWriter(uf.cellId[index2])) { serverID = Global.CloudStorage.GetServerIdByCellId(uf.cellId[index2]); using (var responce = Global.CloudStorage.GetElementToDatabaseServer(serverID, req)) { ele2 = responce.ele; ele2.doubleField = uf.Value2; } } ElementCell eleCell1 = FieldType.getElementCell(ele1); Global.CloudStorage.SaveElementCell(uf.cellId[index1], eleCell1); ElementCell eleCell2 = FieldType.getElementCell(ele2); Global.CloudStorage.SaveElementCell(uf.cellId[index2], eleCell1); } }
// POST odata/ElementCell public async Task <IHttpActionResult> Post(ElementCell elementCell) { try { await MainUnitOfWork.InsertAsync(elementCell); } catch (DbUpdateException) { if (await MainUnitOfWork.All.AnyAsync(item => item.Id == elementCell.Id)) { return(new UniqueKeyConflictResult(Request, "Id", elementCell.Id.ToString())); } else { throw; } } return(Created(elementCell)); }
public static ElementCell setValueCell(object value, int type) { ElementCell ele = new ElementCell("1", 1, 1, new DateTime(), 1); if (value == null) //无默认值 { if (type < STRING || type > LONG) { throw new Exception(String.Format("不存在的字段类型:{0}", type)); } } else { switch (type) { case INTEGER: ele.intField = Convert.ToInt32(value); break; case STRING: ele.stringField = Convert.ToString(value); break; case LONG: ele.longField = Convert.ToInt64(value); break; case DATETIME: ele.dateField = Convert.ToDateTime(value); break; case DOUBLE: ele.doubleField = Convert.ToDouble(value); break; default: throw new Exception(String.Format("不存在的字段类型:{0}", type)); } } return(ele); }
public void insert(string[] fieldNames, object[][] values) { if (tableNames.Count > 1) { throw new Exception(String.Format("不可输入多个表")); } for (int j = 0; j < values.Length; j++) { List <Element> ele = new List <Element>(); List <long> ID = new List <long> { }; ElementCell elecell = FieldType.setValueCell(values[j][0], this.columnTypes.ElementAt(columnNames.IndexOf(fieldNames[0]))); Global.CloudStorage.SaveElementCell(elecell); ID.Add(elecell.CellID); for (int i = 1; i < fieldNames.Length; i++) { Element temp = FieldType.setValue(values[j][i], this.columnTypes.ElementAt(columnNames.IndexOf(fieldNames[i]))); ele.Add(temp); } using (var request = new InsertMessageWriter(ele)) { int serverId = Global.CloudStorage.GetServerIdByCellId(elecell.CellID); using (var res = Global.CloudStorage.InsertElementToDatabaseServer(serverId, request)) { for (int k = 0; k < res.cellIds.Count; k++) { ID.Add(res.cellIds[k]); } } } this.cellIds.Add(ID); } long tableId = Database.getCurrentDatabase().getTableIdList().ElementAt(Database.getCurrentDatabase().getTableNameList().IndexOf(tableNames [0])); TableHeadCell thc = new TableHeadCell(this.tableNames[0], this.columnNames, this.columnTypes, this.primaryIndexs, this.defaultValues, this.cellIds); Global.CloudStorage.SaveTableHeadCell(tableId, thc); }
private void UpdateFunction(Object Message) { UpdateMessage um = (UpdateMessage)Message; List <Element> row = Global.CloudStorage.GetRowToDatabaseServer( Global.CloudStorage.GetServerIdByCellId(um.cellId[0]), new GetRowMessageWriter(um.cellId)).row; List <Object> values = FieldType.getValues(row, um.typeList); int index = this.columnNames.IndexOf(um.fieldname); int serverID; if (um.con.getResult(values)) { Element ele = new Element { }; using (var req = new GetElementMessageWriter(um.cellId[index])) { serverID = Global.CloudStorage.GetServerIdByCellId(um.cellId[index]); using (var responce = Global.CloudStorage.GetElementToDatabaseServer(serverID, req)) { ele = responce.ele; } } if (um.flag == 1) { switch (um.op) { case '+': ele.intField += um.operationNum; break; case '-': ele.intField -= um.operationNum; break; case '*': ele.intField *= um.operationNum; break; case '/': ele.intField /= um.operationNum; break; default: throw new Exception(String.Format("不合法的操作")); } } else { switch (um.op) { case '+': ele.intField += um.operationNum; break; case '-': ele.intField = um.operationNum - ele.intField; break; case '*': ele.intField *= um.operationNum; break; case '/': ele.intField = um.operationNum / ele.intField; break; default: throw new Exception(String.Format("不合法的操作")); } } ElementCell eleCell = FieldType.getElementCell(ele); Global.CloudStorage.SaveElementCell(um.cellId[index], eleCell); } }
public async Task <int> AddElementCellAsync(ElementCell entity) { _elementCellStore.Add(entity); return(await _context.SaveChangesAsync()); }
static void Main(string[] args) { using (var sourceContext = new BackboneContext("SourceContext")) { using (var targetContext = new BackboneContext("TargetContext")) { // Init Security.LoginAs(-1, "Administrator"); sourceContext.Configuration.AutoDetectChangesEnabled = false; targetContext.Database.CreateIfNotExists(); targetContext.Configuration.AutoDetectChangesEnabled = false; // Roles if (!targetContext.Roles.Any()) { var sourceRoles = sourceContext.Roles.AsEnumerable(); foreach (var sourceRole in sourceRoles) { var targetRole = new Role { Name = sourceRole.Name, CreatedOn = sourceRole.CreatedOn, ModifiedOn = sourceRole.ModifiedOn, DeletedOn = sourceRole.DeletedOn, }; targetContext.Roles.Add(targetRole); } } // Users var sourceUsers = sourceContext.Users .Include(x => x.Logins) .Include(x => x.Roles) .AsEnumerable(); foreach (var sourceUser in sourceUsers) { Console.WriteLine($"User: {sourceUser.Id}"); var targetUser = new User { UserName = sourceUser.UserName, Email = sourceUser.Email, EmailConfirmed = sourceUser.EmailConfirmed, EmailConfirmationSentOn = sourceUser.EmailConfirmationSentOn, HasPassword = sourceUser.HasPassword, PasswordHash = sourceUser.PasswordHash, SecurityStamp = sourceUser.SecurityStamp, SingleUseToken = sourceUser.SingleUseToken, FirstName = sourceUser.FirstName, MiddleName = sourceUser.MiddleName, LastName = sourceUser.LastName, Notes = sourceUser.Notes, CreatedOn = sourceUser.CreatedOn, ModifiedOn = sourceUser.ModifiedOn, DeletedOn = sourceUser.DeletedOn, }; targetContext.Users.Add(targetUser); // User roles var sourceUserRoles = sourceUser.Roles; foreach (var sourceUserRole in sourceUserRoles) { // Console.WriteLine($"User role {sourceUserRole.UserId} - {sourceUserRole.RoleId}"); var targetUserRole = new UserRole { User = targetUser, RoleId = sourceUserRole.RoleId, CreatedOn = sourceUserRole.CreatedOn, ModifiedOn = sourceUserRole.ModifiedOn, DeletedOn = sourceUserRole.DeletedOn, }; targetUser.Roles.Add(targetUserRole); } // User logins var sourceUserLogins = sourceUser.Logins; foreach (var sourceUserLogin in sourceUserLogins) { // Console.WriteLine("user login " + userLogin.LoginProvider); var targetUserLogin = new UserLogin { User = targetUser, LoginProvider = sourceUserLogin.LoginProvider, ProviderKey = sourceUserLogin.ProviderKey, CreatedOn = sourceUserLogin.CreatedOn, ModifiedOn = sourceUserLogin.ModifiedOn, DeletedOn = sourceUserLogin.DeletedOn, }; targetUser.Logins.Add(targetUserLogin); } } // Projects var projects = sourceContext.Project .Include(x => x.User) .Include(x => x.ElementSet) .ToList(); foreach (var sourceProject in projects) { Console.WriteLine($"Project: {sourceProject.Name}"); var targetProject = new Project { User = targetContext.Users.Local.Single(x => x.UserName == sourceProject.User.UserName), Name = sourceProject.Name, Origin = sourceProject.Origin, Description = sourceProject.Description, RatingCount = sourceProject.RatingCount, CreatedOn = sourceProject.CreatedOn, ModifiedOn = sourceProject.ModifiedOn, DeletedOn = sourceProject.DeletedOn, }; targetContext.Project.Add(targetProject); // Elements var elements = sourceProject.ElementSet; foreach (var sourceElement in elements) { // Console.WriteLine($"Element {sourceElement.Name}"); var targetElement = new Element { Project = targetProject, Name = sourceElement.Name, CreatedOn = sourceElement.CreatedOn, ModifiedOn = sourceElement.ModifiedOn, DeletedOn = sourceElement.DeletedOn, }; targetContext.Element.Add(targetElement); // Fields var sourceFields = sourceContext.ElementField .Include(x => x.UserElementFieldSet) .Where(x => x.ElementId == sourceElement.Id) .AsEnumerable(); foreach (var sourceField in sourceFields) { var targetField = new ElementField { Element = targetElement, Name = sourceField.Name, DataType = sourceField.DataType, UseFixedValue = sourceField.UseFixedValue, RatingEnabled = sourceField.RatingEnabled, SortOrder = sourceField.SortOrder, RatingTotal = sourceField.RatingTotal, RatingCount = sourceField.RatingCount, CreatedOn = sourceField.CreatedOn, ModifiedOn = sourceField.ModifiedOn, DeletedOn = sourceField.DeletedOn, }; // Selected element if (sourceField.SelectedElement != null) { targetField.SelectedElement = targetContext.Element .Local .Single(x => x.Project == targetProject && x.Name == sourceField.SelectedElement.Name); } targetContext.ElementField.Add(targetField); // User fields var userFieldSet = sourceField.UserElementFieldSet; foreach (var sourceUserField in userFieldSet) { var targetUserElementField = new UserElementField { User = targetContext.Users.Local.Single(x => x.UserName == sourceUserField.User.UserName), ElementField = targetField, Rating = sourceUserField.Rating, CreatedOn = sourceUserField.CreatedOn, ModifiedOn = sourceUserField.ModifiedOn, DeletedOn = sourceUserField.DeletedOn, }; targetContext.UserElementField.Add(targetUserElementField); } } // Items var sourceItems = sourceContext.ElementItem .Include(x => x.ElementCellSet.Select(e => e.UserElementCellSet)) .Where(x => x.ElementId == sourceElement.Id) .AsEnumerable(); foreach (var sourceItem in sourceItems) { var targetItem = new ElementItem { Element = targetElement, Name = sourceItem.Name, CreatedOn = sourceItem.CreatedOn, ModifiedOn = sourceItem.ModifiedOn, DeletedOn = sourceItem.DeletedOn, }; targetContext.ElementItem.Add(targetItem); // Cells var sourceCells = sourceItem.ElementCellSet; foreach (var sourceCell in sourceCells) { var targetCell = new ElementCell { ElementField = targetContext.ElementField.Local.Single(x => x.Element == targetItem.Element && x.Name == sourceCell.ElementField.Name), ElementItem = targetItem, StringValue = sourceCell.StringValue, DecimalValueTotal = sourceCell.DecimalValueTotal, DecimalValueCount = sourceCell.DecimalValueCount, CreatedOn = sourceCell.CreatedOn, ModifiedOn = sourceCell.ModifiedOn, DeletedOn = sourceCell.DeletedOn, }; // Selected item if (sourceCell.SelectedElementItem != null) { targetCell.SelectedElementItem = targetContext.ElementItem .Local .Single(x => x.Element.Project == targetProject && x.Name == sourceCell.SelectedElementItem.Name); } targetContext.ElementCell.Add(targetCell); // User cells var sourceUserCells = sourceCell.UserElementCellSet; foreach (var sourceUserCell in sourceUserCells) { var targetUserCell = new UserElementCell { User = targetContext.Users.Local.Single(x => x.UserName == sourceUserCell.User.UserName), ElementCell = targetCell, DecimalValue = sourceUserCell.DecimalValue, CreatedOn = sourceUserCell.CreatedOn, ModifiedOn = sourceUserCell.ModifiedOn, DeletedOn = sourceUserCell.DeletedOn, }; targetContext.UserElementCell.Add(targetUserCell); } } } } } // Save targetContext.SaveChanges(); } } Console.WriteLine(""); Console.WriteLine(" - Finito! - "); Console.ReadKey(); }