public HttpResponseMessage Update(ClientAccess model) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Created); try { model.CurUserAdSid = GetCurUser().Sid; model.Save(true); response.Content = new StringContent(String.Format("{{\"id\":{0}}}", model.Id)); } catch (Exception ex) { response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(MessageHelper.ConfigureExceptionMessage(ex)); } return response; }
public ClientAccess Get(int id) { var model = new ClientAccess(id); return model; }
public void Save(bool isUpdate = false) { if (!IdClientEtalon.HasValue) throw new ArgumentException("Не указан ID клиента."); Login = IdClientEtalon.ToString(); if (!isUpdate && CheckClientAccessIsExists(IdClientEtalon.Value)) throw new ArgumentException("Доступ для клиента уже существует."); Password = MathHelper.GenerateSimplePassword(); string truePassword = Password; Password = MathHelper.Encrypt(Password, passSalt); SqlParameter pIdContractor = new SqlParameter() { ParameterName = "id_contractor", SqlValue = IdClientEtalon, SqlDbType = SqlDbType.Int }; var dtCtrtr = Db.Service.ExecuteQueryStoredProcedure("get_contractor", pIdContractor); if (dtCtrtr.Rows.Count > 0) { Name = Db.DbHelper.GetValueString(dtCtrtr.Rows[0], "name"); FullName = Db.DbHelper.GetValueString(dtCtrtr.Rows[0], "full_name"); } string adPath = AdOrganization.GetAdPathByAdOrg(AdOrg.ZipClient); string adSid = AdHelper.CreateSimpleAdUser(IdClientEtalon.ToString(), truePassword, Name, description:"клиент", adPath:adPath); AdSid = adSid; SqlParameter pId = new SqlParameter() { ParameterName = "id", SqlValue = Id, SqlDbType = SqlDbType.Int }; SqlParameter pIdClientEtalon = new SqlParameter() { ParameterName = "id_client_etalon", SqlValue = IdClientEtalon, SqlDbType = SqlDbType.Int }; SqlParameter pAdSid = new SqlParameter() { ParameterName = "ad_sid", SqlValue = AdSid, SqlDbType = SqlDbType.VarChar }; SqlParameter pName = new SqlParameter() { ParameterName = "name", SqlValue = Name, SqlDbType = SqlDbType.NVarChar }; SqlParameter pFullName = new SqlParameter() { ParameterName = "full_name", SqlValue = FullName, SqlDbType = SqlDbType.NVarChar }; SqlParameter pLosgin = new SqlParameter() { ParameterName = "login", SqlValue = Login, SqlDbType = SqlDbType.NVarChar }; SqlParameter pPassword = new SqlParameter() { ParameterName = "password", SqlValue = Password, SqlDbType = SqlDbType.NVarChar }; SqlParameter pZipAccess = new SqlParameter() { ParameterName = "zip_access", SqlValue = ZipAccess, SqlDbType = SqlDbType.Bit }; SqlParameter pCounterAccess = new SqlParameter() { ParameterName = "counter_access", SqlValue = CounterAccess, SqlDbType = SqlDbType.Bit }; SqlParameter pCreatorAdSid = new SqlParameter() { ParameterName = "creator_sid", SqlValue = CurUserAdSid, SqlDbType = SqlDbType.VarChar }; //Получаем имя контрагента //TODO: Завернуть в транзакцию var dt = Db.Service.ExecuteQueryStoredProcedure("save_client_access", pId, pIdClientEtalon, pAdSid, pFullName, pName, pLosgin, pPassword, pZipAccess, pCounterAccess, pCreatorAdSid); int id = 0; if (dt.Rows.Count > 0) { int.TryParse(dt.Rows[0]["id"].ToString(), out id); Id = id; } //Назначаем доступ клиенту var clAcc = new ClientAccess(Id); if (clAcc.ZipAccess || clAcc.CounterAccess) { AdHelper.IncludeUser2AdGroup(clAcc.AdSid, AdGroup.ZipClaimClient); } else { AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClient); } if (ZipAccess) { AdHelper.IncludeUser2AdGroup(clAcc.AdSid, AdGroup.ZipClaimClientZipView); } else { AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClientZipView); } if (CounterAccess) { AdHelper.IncludeUser2AdGroup(clAcc.AdSid, AdGroup.ZipClaimClientCounterView); } else { AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClientCounterView); } }
public static void Close(int id, string deleterSid) { var clAcc = new ClientAccess(id); SqlParameter pId = new SqlParameter() { ParameterName = "id", SqlValue = id, SqlDbType = SqlDbType.Int }; SqlParameter pDeleterSid = new SqlParameter() { ParameterName = "deleter_sid", SqlValue = deleterSid, SqlDbType = SqlDbType.VarChar }; var dt = Db.Service.ExecuteQueryStoredProcedure("close_client_access", pId, pDeleterSid); //Убираем доступы клиента AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClient); AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClientZipView); AdHelper.ExcludeUserFromAdGroup(clAcc.AdSid, AdGroup.ZipClaimClientCounterView); }
public static IEnumerable<ClientAccess> GetList() { var dt = Db.Service.ExecuteQueryStoredProcedure("get_client_access"); var lst = new List<ClientAccess>(); foreach (DataRow row in dt.Rows) { var model = new ClientAccess(row); lst.Add(model); } return lst; }