예제 #1
0
파일: Sessions.cs 프로젝트: knocte/Sfx.Mvc
		void SaveInDatabase(User user)
		{
			var isNew = user.Id == 0;

			var query = new Query("session");
			query.AddValue("name", user.Name);
			query.AddValue("idAdmin", user.IdAdmin);
			query.AddValue("idSuperAdmin", user.IdSuperAdmin);
			query.AddValue("idCustomer", user.IdCustomer);

			if(user.Tenant != null)
			{
				query.AddValue("tenant", user.Tenant.Name);
			}

			query.AddValue("culture", user.Culture.Name);
			query.AddValue("createdate", user.CreateDate);
			query.AddValue("items", Json.Serialize(user.Items));

			if(isNew)
			{
				query.AddValue("sessionId", user.SessionId);
				query.DbOperation = DbOperation.Insert;
			}
			else
			{
				query.DbOperation = DbOperation.Update;
				query.WhereIsEqual("sessionId", user.SessionId);
			}

			if(this.persistent)
			{
				using(var orm = CreateOrm())
				{
					orm.ExecuteNonQuery(query);
					if(isNew)
					{
						user.Id = Convert.ToInt32(orm.DbSession.LastInsertedId);
					}
				}
			}
		}