Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        // 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));
        }
Exemple #4
0
 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;
 }
Exemple #5
0
        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;
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        // 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));
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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());
 }
Exemple #12
0
        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();
        }