public static int CreateTestObjects() { #region REGIONS CCountry Country = new CCountry(DatabaseContext) { FullDescription = "Россия", ShortDescription = "Россия", Name = "Россия", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_REGIONS_KEY, Status = EnMetaobjectStatus.EEnabled, System = false }; var R = Country.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CState State = new CState(DatabaseContext) { FullDescription = "Пермский край", ShortDescription = "Пермский край", Name = "Пермский край", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Country.Key, Status = EnMetaobjectStatus.EEnabled, System = false }; R = State.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CCity City = new CCity(DatabaseContext) { FullDescription = "Пермь", ShortDescription = "Пермь", Name = "Пермь", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = State.Key, Status = EnMetaobjectStatus.EEnabled, System = false, Coordinates = "" }; R = City.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; #endregion #region ORGANIZATIONS COrganizationNetwork OrganizationNetwork = new COrganizationNetwork(DatabaseContext) { FullDescription = "Сеть организаций", ShortDescription = "Сеть организаций", Name = "Сеть организаций", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_MENUS_KEY, Status = EnMetaobjectStatus.EEnabled, System = false, Email = "Email", Url = "" }; R = OrganizationNetwork.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; COrganization Organization = new COrganization(DatabaseContext) { FullDescription = "Организация", ShortDescription = "Организация", Name = "Организация", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_MENUS_KEY, Status = EnMetaobjectStatus.EEnabled, System = false }; R = Organization.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; cMenu.Metaobjects.Linq.CMetaobjectLink Link = new Metaobjects.Linq.CMetaobjectLink() { LinkedObjectKey = Organization.Key, LinkType = EnMetaobjectLinkType.ESimple, LinkValue = 1, SourceObjectKey = City.Key }; R = Link.LinkInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; #endregion #region SERVICES CMenuService Service1 = new CMenuService(DatabaseContext) { FullDescription = "Товар 1", ShortDescription = "Товар 1", Name = "Товар 1", Composition = "Состав", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_SERVICES_KEY, Status = EnMetaobjectStatus.EEnabled, System = false }; R = Service1.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CMenuService Service2 = new CMenuService(DatabaseContext) { FullDescription = "Товар 2", ShortDescription = "Товар 2", Name = "Товар 2", Composition = "Состав", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_SERVICES_KEY, Status = EnMetaobjectStatus.EEnabled, System = false }; R = Service2.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CMenuServiceAmount Amount1 = new CMenuServiceAmount(DatabaseContext) { FullDescription = "Порция 1.1", ShortDescription = "ТПорция 1.1", Name = "Порция 1.1", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Service1.Key, Status = EnMetaobjectStatus.EEnabled, System = false, Price = 100, Amount = 200, Units = "мг", TimeAmount = new TimeSpan(0, 10, 0) }; R = Amount1.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CMenuServiceAmount Amount2 = new CMenuServiceAmount(DatabaseContext) { FullDescription = "Порция 2.1", ShortDescription = "ТПорция 2.1", Name = "Порция 2.1", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Service2.Key, Status = EnMetaobjectStatus.EEnabled, System = false, Price = 200, Amount = 300, Units = "г", TimeAmount = new TimeSpan(0, 20, 0) }; R = Amount2.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; #endregion #region MENU CMenu Menu = new CMenu(DatabaseContext) { FullDescription = "Меню", ShortDescription = "Меню", Name = "Меню", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Organization.Key, Status = EnMetaobjectStatus.EEnabled, System = false, Primary = true }; R = Menu.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CCategory Category = new CCategory() { FullDescription = "Категория", ShortDescription = "Категория", Name = "Категория", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Menu.Key, Status = EnMetaobjectStatus.EEnabled, System = false }; R = Category.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CMetaobjectShortcut Shortcut = new CMetaobjectShortcut(DatabaseContext) { FullDescription = "Ссылка на порцию 1.1", ShortDescription = "Ссылка на порцию 1.1", Name = "Ссылка на порцию 1.1", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Category.Key, Status = EnMetaobjectStatus.EEnabled, System = false, SourceObjectKey = Amount1.Key }; R = Shortcut.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; CMetaobjectShortcut Shortcut2 = new CMetaobjectShortcut(DatabaseContext) { FullDescription = "Ссылка на порцию 1.2", ShortDescription = "Ссылка на порцию 1.2", Name = "Ссылка на порцию 1.2", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = Category.Key, Status = EnMetaobjectStatus.EEnabled, System = false, SourceObjectKey = Amount2.Key }; R = Shortcut2.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; #endregion #region TABLES COrganizationTable Table = new COrganizationTable(DatabaseContext) { FullDescription = "Стол", ShortDescription = "Стол", Name = "Стол", ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(Provider), ModificatonDate = DateTime.Now, Parent = CEmbeddedObjectsConsts.CONST_FOLDER_SERVICES_KEY, Status = EnMetaobjectStatus.EEnabled, System = false }; R = Table.ObjectInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; Link = new Metaobjects.Linq.CMetaobjectLink() { LinkedObjectKey = Table.Key, LinkType = EnMetaobjectLinkType.ESimple, LinkValue = 1, SourceObjectKey = Organization.Key }; R = Link.LinkInsert(DatabaseContext); if (R != CErrors.ERR_SUC) return R; #endregion try { DatabaseContext.SubmitChanges(); } catch (Exception Exception) { throw new Exception(Exception.Message); return CErrors.ERR_DB_INSERT_OBJECT; } return CErrors.ERR_SUC; }
protected CFunctionResult _userLogin(string UserIdentity, string Password, Guid TableID) { Dictionary<string, object> InputParameters = new Dictionary<string, object>(); InputParameters.Add("IdentityKey", UserIdentity); InputParameters.Add("Password", Password); InputParameters.Add("TableID", TableID); CFunctionResult R = new CFunctionResult() { FunctionID = "UserLogin", InputParameters = InputParameters, ResultType = Communication.EnFunctionResultType.ESuccess }; CFunctionResult UserResult = CServerHelper.sCheckUserByPassword(UserIdentity, Password); if (UserResult.ResultType != Communication.EnFunctionResultType.ESuccess) { UserResult.FunctionID = "UserLogout"; UserResult.InputParameters = InputParameters; return UserResult; } CSystemUser User = (CSystemUser)UserResult.Content; Guid TempGUID = TableID; COrganizationTable Table = new COrganizationTable(TempGUID, CServerEnvironment.DataContext); if (Table.Key == CDBConst.CONST_OBJECT_EMPTY_KEY) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, CGlobalizationHelper.sGetStringResource("ERROR_TABLE_UNABLE_TO_FIND", CultureInfo.CurrentCulture), null); return R; } var Links = Table.GetExternalLinks(CServerEnvironment.DataContext); if (Links.Count == 0 || Links.Count > 1) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, CGlobalizationHelper.sGetStringResource("ERROR_ORG_UNABLE_TO_FIND", CultureInfo.CurrentCulture), null); return R; } cMenu.Metaobjects.Linq.CMetaobject Organization = Links[0].GetSourceObject(CServerEnvironment.DataContext); if (Organization == null) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, CGlobalizationHelper.sGetStringResource("ERROR_ORG_UNABLE_TO_FIND", CultureInfo.CurrentCulture), null); return R; } var Sessions = CSystemUserSession.sGetSessionsByUser(User.Key, CServerEnvironment.DataContext); CSystemUserSession Session = null; if (Sessions.Count != 0) { var Query = from Ses in Sessions where Ses.Status == EnSessionStatus.EEnabled && Ses.Type == EnSessionType.ETablet && Ses.DeadLine > DateTime.Now select Ses; Session = (Query.Count() == 0 ? null : Query.ToList()[0]); if (Session == null) { Session = new CSystemUserSession() { ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(CServerEnvironment.DatabaseProvider), Status = EnSessionStatus.EEnabled, Type = EnSessionType.ETablet, UserKey = User.Key, Variables = new byte[0], DeadLine = DateTime.Now.AddHours(8) }; Session.VariablesDictionary.Add(CSecurityConsts.CONST_SESSION_TABLE_ID, Table.ID); Session.SessionVariablesSave(); var RR = Session.SessionInsert(CServerEnvironment.DataContext); if (RR != CErrors.ERR_SUC) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, CGlobalizationHelper.sGetStringResource("ERROR_SESSION_INSERT_UNABLE", CultureInfo.CurrentCulture), null); return R; } } else Session.SessionVariablesLoad(); } else { Session = new CSystemUserSession() { ID = Guid.NewGuid(), Key = CDatabaseSequence.sGetObjectKey(CServerEnvironment.DatabaseProvider), Status = EnSessionStatus.EEnabled, Type = EnSessionType.ETablet, UserKey = User.Key, Variables = new byte[0], DeadLine = DateTime.Now.AddHours(8) }; Session.VariablesDictionary.Add(CSecurityConsts.CONST_SESSION_TABLE_ID, Table.ID); Session.SessionVariablesSave(); var RR = Session.SessionInsert(CServerEnvironment.DataContext); if (RR != CErrors.ERR_SUC) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, CGlobalizationHelper.sGetStringResource("ERROR_SESSION_INSERT_UNABLE", CultureInfo.CurrentCulture), null); return R; } } try { CServerEnvironment.DataContext.SubmitChanges(); } catch (Exception Exception) { R = CServerHelper.sCompileFunctionResult("UserLogin", Communication.EnFunctionResultType.EError, InputParameters, Exception.Message, null); return R; } var Content = new object[3]; Content[0] = User; Content[1] = Session; Content[2] = Organization; R.Content = Content; return R; }