перевод на асинхронность в бд
This commit is contained in:
parent
d93117f01a
commit
fcad2e9815
@ -8,6 +8,7 @@ using ModuleTools.Models;
|
|||||||
using ModuleTools.ViewModels;
|
using ModuleTools.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DatabaseCore
|
namespace DatabaseCore
|
||||||
{
|
{
|
||||||
@ -18,7 +19,7 @@ namespace DatabaseCore
|
|||||||
where L : ListViewModel<E>, new()
|
where L : ListViewModel<E>, new()
|
||||||
where E : ElementViewModel
|
where E : ElementViewModel
|
||||||
{
|
{
|
||||||
public OperationResultModel Create(S model)
|
public async Task<OperationResultModel> CreateAsync(S model)
|
||||||
{
|
{
|
||||||
using var context = DatabaseManager.GetContext;
|
using var context = DatabaseManager.GetContext;
|
||||||
|
|
||||||
@ -32,8 +33,8 @@ namespace DatabaseCore
|
|||||||
if (exsistEntity == null)
|
if (exsistEntity == null)
|
||||||
{
|
{
|
||||||
var entity = Mapper.MapToClass<S, T>(model, true);
|
var entity = Mapper.MapToClass<S, T>(model, true);
|
||||||
context.Set<T>().Add(entity);
|
await context.Set<T>().AddAsync(entity);
|
||||||
context.SaveChanges();
|
await context.SaveChangesAsync();
|
||||||
return OperationResultModel.Success(Mapper.MapToClass<T, E>(entity, true));
|
return OperationResultModel.Success(Mapper.MapToClass<T, E>(entity, true));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -42,7 +43,7 @@ namespace DatabaseCore
|
|||||||
{
|
{
|
||||||
exsistEntity = Mapper.MapToClass(model, exsistEntity, true);
|
exsistEntity = Mapper.MapToClass(model, exsistEntity, true);
|
||||||
exsistEntity.IsDeleted = false;
|
exsistEntity.IsDeleted = false;
|
||||||
context.SaveChanges();
|
await context.SaveChangesAsync();
|
||||||
return OperationResultModel.Success(Mapper.MapToClass<T, E>(exsistEntity, true));
|
return OperationResultModel.Success(Mapper.MapToClass<T, E>(exsistEntity, true));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -52,7 +53,7 @@ namespace DatabaseCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public OperationResultModel Delete(G model)
|
public async Task<OperationResultModel> DeleteAsync(G model)
|
||||||
{
|
{
|
||||||
using var context = DatabaseManager.GetContext;
|
using var context = DatabaseManager.GetContext;
|
||||||
using var transaction = context.Database.BeginTransaction();
|
using var transaction = context.Database.BeginTransaction();
|
||||||
@ -77,22 +78,22 @@ namespace DatabaseCore
|
|||||||
entity.IsDeleted = true;
|
entity.IsDeleted = true;
|
||||||
entity.DateDelete = DateTime.Now;
|
entity.DateDelete = DateTime.Now;
|
||||||
|
|
||||||
context.SaveChanges();
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
AdditionalDeleting(context, entity, model);
|
AdditionalDeleting(context, entity, model);
|
||||||
|
|
||||||
transaction.Commit();
|
await transaction.CommitAsync();
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
transaction.Rollback();
|
await transaction.RollbackAsync();
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OperationResultModel.Success(true);
|
return OperationResultModel.Success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public OperationResultModel Read(G model)
|
public async Task<OperationResultModel> ReadAsync(G model)
|
||||||
{
|
{
|
||||||
int countPages = 0;
|
int countPages = 0;
|
||||||
using var context = DatabaseManager.GetContext;
|
using var context = DatabaseManager.GetContext;
|
||||||
@ -114,26 +115,29 @@ namespace DatabaseCore
|
|||||||
|
|
||||||
query = OrderingWhenReading(query);
|
query = OrderingWhenReading(query);
|
||||||
|
|
||||||
if (model.PageNumber.HasValue && model.PageSize.HasValue)
|
|
||||||
{
|
|
||||||
countPages = (int)Math.Ceiling((double)query.Count() / model.PageSize.Value);
|
|
||||||
query = query
|
|
||||||
.Skip(model.PageSize.Value * model.PageNumber.Value)
|
|
||||||
.Take(model.PageSize.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
query = IncludingWhenReading(query);
|
query = IncludingWhenReading(query);
|
||||||
|
|
||||||
var result = new L
|
return await Task.Run(() =>
|
||||||
{
|
{
|
||||||
MaxCount = countPages,
|
|
||||||
List = query.Select(x => Mapper.MapToClass<T, E>(x, model.HaveRight)).ToList()
|
|
||||||
};
|
|
||||||
|
|
||||||
return OperationResultModel.Success(result);
|
if (model.PageNumber.HasValue && model.PageSize.HasValue)
|
||||||
|
{
|
||||||
|
countPages = (int)Math.Ceiling((double)query.Count() / model.PageSize.Value);
|
||||||
|
query = query
|
||||||
|
.Skip(model.PageSize.Value * model.PageNumber.Value)
|
||||||
|
.Take(model.PageSize.Value);
|
||||||
|
}
|
||||||
|
var result = new L
|
||||||
|
{
|
||||||
|
MaxCount = countPages,
|
||||||
|
List = query.Select(x => Mapper.MapToClass<T, E>(x, model.HaveRight)).ToList()
|
||||||
|
};
|
||||||
|
|
||||||
|
return OperationResultModel.Success(result);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public OperationResultModel Update(S model)
|
public async Task<OperationResultModel> UpdateAsync(S model)
|
||||||
{
|
{
|
||||||
using var context = DatabaseManager.GetContext;
|
using var context = DatabaseManager.GetContext;
|
||||||
|
|
||||||
@ -160,7 +164,7 @@ namespace DatabaseCore
|
|||||||
}
|
}
|
||||||
entity = Mapper.MapToClass(model, entity, true);
|
entity = Mapper.MapToClass(model, entity, true);
|
||||||
|
|
||||||
context.SaveChanges();
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
return OperationResultModel.Success(Mapper.MapToClass<T, E>(entity, true));
|
return OperationResultModel.Success(Mapper.MapToClass<T, E>(entity, true));
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ using ModuleTools.ViewModels;
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ namespace DesktopTools.Controls
|
|||||||
_controlViewEntityElement = this;
|
_controlViewEntityElement = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OpenControl(ControlOpenModel model)
|
public async void OpenControl(ControlOpenModel model)
|
||||||
{
|
{
|
||||||
if (model.CloseElement != null)
|
if (model.CloseElement != null)
|
||||||
{
|
{
|
||||||
@ -139,7 +140,7 @@ namespace DesktopTools.Controls
|
|||||||
}
|
}
|
||||||
if (model.ElementId.HasValue)
|
if (model.ElementId.HasValue)
|
||||||
{
|
{
|
||||||
Element = _businessLogic.GetElement(new G { Id = model.ElementId });
|
Element = await _businessLogic.GetElementAsync(new G { Id = model.ElementId });
|
||||||
if (Element == null)
|
if (Element == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(_businessLogic.Errors, $"{Title}. Ошибки при получении элемента");
|
DialogHelper.MessageException(_businessLogic.Errors, $"{Title}. Ошибки при получении элемента");
|
||||||
@ -164,7 +165,7 @@ namespace DesktopTools.Controls
|
|||||||
|
|
||||||
private void InitEvents()
|
private void InitEvents()
|
||||||
{
|
{
|
||||||
toolStripButtonSave.Click += (object sender, EventArgs e) => { Save(); };
|
toolStripButtonSave.Click += async (object sender, EventArgs e) => { await SaveAsync(); };
|
||||||
toolStripButtonReload.Click += (object sender, EventArgs e) =>
|
toolStripButtonReload.Click += (object sender, EventArgs e) =>
|
||||||
{
|
{
|
||||||
if (DialogHelper.MessageQuestion("Отменить все внесенные изменения?") == DialogResult.Yes)
|
if (DialogHelper.MessageQuestion("Отменить все внесенные изменения?") == DialogResult.Yes)
|
||||||
@ -179,11 +180,11 @@ namespace DesktopTools.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
toolStripButtonClose.Click += (object sender, EventArgs e) =>
|
toolStripButtonClose.Click += async (object sender, EventArgs e) =>
|
||||||
{
|
{
|
||||||
if (_haveChages && DialogHelper.MessageQuestion("Имеется несохраненные данные, вы действительно хотите закрыть элемент?", "Закрытие элемента") == DialogResult.Yes)
|
if (_haveChages && DialogHelper.MessageQuestion("Имеется несохраненные данные, вы действительно хотите закрыть элемент?", "Закрытие элемента") == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
if (!Save())
|
if (!(await SaveAsync()))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -348,7 +349,7 @@ namespace DesktopTools.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Save()
|
private async Task<bool> SaveAsync()
|
||||||
{
|
{
|
||||||
if (CheckValues.GetInvocationList().Select(x => (bool)x.DynamicInvoke()).ToList().Any(x => !x))
|
if (CheckValues.GetInvocationList().Select(x => (bool)x.DynamicInvoke()).ToList().Any(x => !x))
|
||||||
{
|
{
|
||||||
@ -368,11 +369,11 @@ namespace DesktopTools.Controls
|
|||||||
{
|
{
|
||||||
if (Element == null)
|
if (Element == null)
|
||||||
{
|
{
|
||||||
Element = _businessLogic.Create(model);
|
Element = await _businessLogic.CreateAsync(model);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Element = _businessLogic.Update(model);
|
Element = await _businessLogic.UpdateAsync(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Element == null)
|
if (Element == null)
|
||||||
|
@ -99,7 +99,7 @@ namespace DesktopTools.Controls
|
|||||||
|
|
||||||
public IControl GetInstanceControl() => _genericControlViewEntityList?.GetInstanceGenericControl();
|
public IControl GetInstanceControl() => _genericControlViewEntityList?.GetInstanceGenericControl();
|
||||||
|
|
||||||
public string GetTitleFromIdControl(Guid id) => _businessLogic.GetElement(new G { Id = id })?.ToString();
|
public string GetTitleFromIdControl(Guid id) => _businessLogic.GetElementAsync(new G { Id = id }).Result?.ToString();
|
||||||
|
|
||||||
public string SaveControlToXml() => new XElement("Control",
|
public string SaveControlToXml() => new XElement("Control",
|
||||||
new XAttribute("Type", GetType().FullName),
|
new XAttribute("Type", GetType().FullName),
|
||||||
@ -290,10 +290,10 @@ namespace DesktopTools.Controls
|
|||||||
{
|
{
|
||||||
toolStripButtonAdd.Click += (object sender, EventArgs e) => { AddElement(); };
|
toolStripButtonAdd.Click += (object sender, EventArgs e) => { AddElement(); };
|
||||||
toolStripButtonUpd.Click += (object sender, EventArgs e) => { UpdElement(); };
|
toolStripButtonUpd.Click += (object sender, EventArgs e) => { UpdElement(); };
|
||||||
toolStripButtonDel.Click += (object sender, EventArgs e) => { DelElement(); };
|
toolStripButtonDel.Click += async (object sender, EventArgs e) => { await DelElementAsync(); };
|
||||||
toolStripButtonSearch.Click += (object sender, EventArgs e) => { panelSearch.Visible = !panelSearch.Visible; };
|
toolStripButtonSearch.Click += (object sender, EventArgs e) => { panelSearch.Visible = !panelSearch.Visible; };
|
||||||
toolStripButtonRef.Click += async (object sender, EventArgs e) => { await LoadListAsync(); };
|
toolStripButtonRef.Click += async (object sender, EventArgs e) => { await LoadListAsync(); };
|
||||||
toolStripButtonSelect.Click += (object sender, EventArgs e) => { SelectElement(); };
|
toolStripButtonSelect.Click += async (object sender, EventArgs e) => { await SelectElement(); };
|
||||||
toolStripButtonClose.Click += (object sender, EventArgs e) =>
|
toolStripButtonClose.Click += (object sender, EventArgs e) =>
|
||||||
{
|
{
|
||||||
CloseListEvent?.Invoke(ControlId);
|
CloseListEvent?.Invoke(ControlId);
|
||||||
@ -302,9 +302,9 @@ namespace DesktopTools.Controls
|
|||||||
};
|
};
|
||||||
|
|
||||||
buttonSearch.Click += async (object sender, EventArgs e) => { await LoadListAsync(); };
|
buttonSearch.Click += async (object sender, EventArgs e) => { await LoadListAsync(); };
|
||||||
buttonCancelSearch.Click += (object sender, EventArgs e) => { panelSearch.Visible = false; };
|
buttonCancelSearch.Click += async (object sender, EventArgs e) => { panelSearch.Visible = false; await LoadListAsync(); };
|
||||||
|
|
||||||
dataGridViewList.KeyDown += (object sender, KeyEventArgs e) =>
|
dataGridViewList.KeyDown += async (object sender, KeyEventArgs e) =>
|
||||||
{
|
{
|
||||||
switch (e.KeyCode)
|
switch (e.KeyCode)
|
||||||
{
|
{
|
||||||
@ -323,16 +323,16 @@ namespace DesktopTools.Controls
|
|||||||
case Keys.Delete:
|
case Keys.Delete:
|
||||||
if (toolStripButtonDel.Visible)
|
if (toolStripButtonDel.Visible)
|
||||||
{
|
{
|
||||||
DelElement();
|
await DelElementAsync();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
dataGridViewList.CellDoubleClick += (object sender, DataGridViewCellEventArgs e) =>
|
dataGridViewList.CellDoubleClick += async (object sender, DataGridViewCellEventArgs e) =>
|
||||||
{
|
{
|
||||||
if (_openMode == ControlOpenMode.Select && dataGridViewList.SelectedRows.Count > 0)
|
if (_openMode == ControlOpenMode.Select && dataGridViewList.SelectedRows.Count > 0)
|
||||||
{
|
{
|
||||||
SelectElement();
|
await SelectElement();
|
||||||
}
|
}
|
||||||
UpdElement();
|
UpdElement();
|
||||||
};
|
};
|
||||||
@ -440,7 +440,7 @@ namespace DesktopTools.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await Task.Run(() => data = _businessLogic.GetList(model));
|
data = await _businessLogic.GetListAsync(model);
|
||||||
if (data == null && _businessLogic.Errors.Count > 0)
|
if (data == null && _businessLogic.Errors.Count > 0)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(_businessLogic.Errors, $"{Title}. Ошибки при получении данных");
|
DialogHelper.MessageException(_businessLogic.Errors, $"{Title}. Ошибки при получении данных");
|
||||||
@ -513,7 +513,7 @@ namespace DesktopTools.Controls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вызов события при удалении элемента
|
/// Вызов события при удалении элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private async void DelElement()
|
private async Task DelElementAsync()
|
||||||
{
|
{
|
||||||
if (MessageBox.Show("Удалить выбранные записи?", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
if (MessageBox.Show("Удалить выбранные записи?", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
@ -523,7 +523,7 @@ namespace DesktopTools.Controls
|
|||||||
Cursor.Current = Cursors.WaitCursor;
|
Cursor.Current = Cursors.WaitCursor;
|
||||||
foreach (DataGridViewRow selected in dataGridViewList.SelectedRows)
|
foreach (DataGridViewRow selected in dataGridViewList.SelectedRows)
|
||||||
{
|
{
|
||||||
_businessLogic.Delete(new G { Id = new Guid(selected.Cells[0].Value.ToString()) });
|
await _businessLogic.DeleteAsync(new G { Id = new Guid(selected.Cells[0].Value.ToString()) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -548,12 +548,12 @@ namespace DesktopTools.Controls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вызов события при выборе элемента
|
/// Вызов события при выборе элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void SelectElement()
|
private async Task SelectElement()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SelectedId = new Guid(dataGridViewList.SelectedRows[0].Cells[0].Value.ToString());
|
SelectedId = new Guid(dataGridViewList.SelectedRows[0].Cells[0].Value.ToString());
|
||||||
SelectedText = _businessLogic.GetElement(new G { Id = SelectedId })?.ToString();
|
SelectedText = (await _businessLogic.GetElementAsync(new G { Id = SelectedId }))?.ToString();
|
||||||
CloseSelectEvent?.Invoke(true);
|
CloseSelectEvent?.Invoke(true);
|
||||||
Dispose();
|
Dispose();
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using ModuleTools.Enums;
|
|||||||
using ModuleTools.Interfaces;
|
using ModuleTools.Interfaces;
|
||||||
using ModuleTools.ViewModels;
|
using ModuleTools.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace ModuleTools.BusinessLogics
|
namespace ModuleTools.BusinessLogics
|
||||||
{
|
{
|
||||||
@ -41,7 +42,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public L GetList(G model)
|
public async Task<L> GetListAsync(G model)
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
Errors.Clear();
|
||||||
try
|
try
|
||||||
@ -51,7 +52,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
{
|
{
|
||||||
throw new MethodAccessException("Нет прав на получение списка");
|
throw new MethodAccessException("Нет прав на получение списка");
|
||||||
}
|
}
|
||||||
var result = Service.Read(model);
|
var result = await Service.ReadAsync(model);
|
||||||
if (!result.IsSucceeded)
|
if (!result.IsSucceeded)
|
||||||
{
|
{
|
||||||
Errors.AddRange(result.Errors);
|
Errors.AddRange(result.Errors);
|
||||||
@ -72,7 +73,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public E GetElement(G model)
|
public async Task<E> GetElementAsync(G model)
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
Errors.Clear();
|
||||||
try
|
try
|
||||||
@ -82,7 +83,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
{
|
{
|
||||||
throw new MethodAccessException("Нет прав на получение списка");
|
throw new MethodAccessException("Нет прав на получение списка");
|
||||||
}
|
}
|
||||||
var result = Service.Read(model);
|
var result = await Service.ReadAsync(model);
|
||||||
if (!result.IsSucceeded)
|
if (!result.IsSucceeded)
|
||||||
{
|
{
|
||||||
Errors.AddRange(result.Errors);
|
Errors.AddRange(result.Errors);
|
||||||
@ -102,7 +103,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public E Create(S model)
|
public async Task<E> CreateAsync(S model)
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
Errors.Clear();
|
||||||
try
|
try
|
||||||
@ -111,7 +112,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var result = Service.Create(model);
|
var result = await Service.CreateAsync(model);
|
||||||
if (!result.IsSucceeded)
|
if (!result.IsSucceeded)
|
||||||
{
|
{
|
||||||
Errors.AddRange(result.Errors);
|
Errors.AddRange(result.Errors);
|
||||||
@ -132,7 +133,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public E Update(S model)
|
public async Task<E> UpdateAsync(S model)
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
Errors.Clear();
|
||||||
try
|
try
|
||||||
@ -141,7 +142,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var result = Service.Update(model);
|
var result = await Service.UpdateAsync(model);
|
||||||
if (!result.IsSucceeded)
|
if (!result.IsSucceeded)
|
||||||
{
|
{
|
||||||
Errors.AddRange(result.Errors);
|
Errors.AddRange(result.Errors);
|
||||||
@ -162,7 +163,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool Delete(G model)
|
public async Task<bool> DeleteAsync(G model)
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
Errors.Clear();
|
||||||
try
|
try
|
||||||
@ -171,7 +172,7 @@ namespace ModuleTools.BusinessLogics
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var result = Service.Delete(model);
|
var result = await Service.DeleteAsync(model);
|
||||||
if (!result.IsSucceeded)
|
if (!result.IsSucceeded)
|
||||||
{
|
{
|
||||||
Errors.AddRange(result.Errors);
|
Errors.AddRange(result.Errors);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using ModuleTools.BindingModels;
|
using ModuleTools.BindingModels;
|
||||||
using ModuleTools.Models;
|
using ModuleTools.Models;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace ModuleTools.Interfaces
|
namespace ModuleTools.Interfaces
|
||||||
{
|
{
|
||||||
@ -15,27 +16,27 @@ namespace ModuleTools.Interfaces
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
OperationResultModel Read(G model);
|
Task<OperationResultModel> ReadAsync(G model);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Создание новой сущности
|
/// Создание новой сущности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
OperationResultModel Create(S model);
|
Task<OperationResultModel> CreateAsync(S model);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Изменение сущности
|
/// Изменение сущности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
OperationResultModel Update(S model);
|
Task<OperationResultModel> UpdateAsync(S model);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаление сущности
|
/// Удаление сущности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
OperationResultModel Delete(G model);
|
Task<OperationResultModel> DeleteAsync(G model);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -38,7 +38,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
public ControlViewEntityListConfiguration GetConfigControl() => new()
|
public ControlViewEntityListConfiguration GetConfigControl() => new()
|
||||||
{
|
{
|
||||||
PaginationOn = true,
|
PaginationOn = true,
|
||||||
PageNamesForPagination = _disciplineBlockBusinessLogic.GetList(new DisciplineBlockGetBindingModel())?.List?.Select(x =>
|
PageNamesForPagination = _disciplineBlockBusinessLogic.GetListAsync(new DisciplineBlockGetBindingModel()).Result?.List?.Select(x =>
|
||||||
new PageNamesForPaginationModel
|
new PageNamesForPaginationModel
|
||||||
{
|
{
|
||||||
Key = x.Id,
|
Key = x.Id,
|
||||||
|
@ -13,6 +13,7 @@ using SecurityBusinessLogic.BusinessLogics;
|
|||||||
using SecurityBusinessLogic.ViewModels;
|
using SecurityBusinessLogic.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DepartmentWindowsDesktop.EntityControls
|
namespace DepartmentWindowsDesktop.EntityControls
|
||||||
{
|
{
|
||||||
@ -37,22 +38,22 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
{
|
{
|
||||||
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
||||||
{
|
{
|
||||||
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", (object sender, EventArgs e) => { AddUser(); }) },
|
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", async (object sender, EventArgs e) => { await AddUserAsync(); }) },
|
||||||
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", (object sender, EventArgs e) => { PasswordReset(); }) }
|
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", async (object sender, EventArgs e) => { await PasswordResetAsync(); }) }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void AddUser()
|
private async Task AddUserAsync()
|
||||||
{
|
{
|
||||||
var model = new EmployeeSetBindingModel();
|
var model = new EmployeeSetBindingModel();
|
||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
||||||
var result = logic.GetList(new UserGetBindingModel { UserNameForSearch = userName });
|
var result = await logic.GetListAsync(new UserGetBindingModel { UserNameForSearch = userName });
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
if (result.List.Count > 1)
|
if (result.List.Count > 1)
|
||||||
@ -66,7 +67,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var newuser = logic.Create(new UserSetBindingModel
|
var newuser = await logic.CreateAsync(new UserSetBindingModel
|
||||||
{
|
{
|
||||||
Login = userName,
|
Login = userName,
|
||||||
Password = model.DateBirth.ToShortDateString(),
|
Password = model.DateBirth.ToShortDateString(),
|
||||||
@ -91,7 +92,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сброс пароля пользователя
|
/// Сброс пароля пользователя
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void PasswordReset()
|
private async Task PasswordResetAsync()
|
||||||
{
|
{
|
||||||
if (_element == null)
|
if (_element == null)
|
||||||
{
|
{
|
||||||
@ -101,14 +102,14 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var user = logic.GetElement(new UserGetBindingModel { Id = _element.UserId });
|
var user = await logic.GetElementAsync(new UserGetBindingModel { Id = _element.UserId });
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
user.Password = model.DateBirth.ToShortDateString();
|
user.Password = model.DateBirth.ToShortDateString();
|
||||||
user = logic.Update(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
user = await logic.UpdateAsync(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
|
@ -13,6 +13,7 @@ using SecurityBusinessLogic.BusinessLogics;
|
|||||||
using SecurityBusinessLogic.ViewModels;
|
using SecurityBusinessLogic.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DepartmentWindowsDesktop.EntityControls
|
namespace DepartmentWindowsDesktop.EntityControls
|
||||||
{
|
{
|
||||||
@ -37,22 +38,22 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
{
|
{
|
||||||
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
||||||
{
|
{
|
||||||
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", (object sender, EventArgs e) => { AddUser(); }) },
|
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", async (object sender, EventArgs e) => { await AddUserAsunc(); }) },
|
||||||
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", (object sender, EventArgs e) => { PasswordReset(); }) }
|
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", async (object sender, EventArgs e) => { await PasswordResetAsync(); }) }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void AddUser()
|
private async Task AddUserAsunc()
|
||||||
{
|
{
|
||||||
var model = new LecturerSetBindingModel();
|
var model = new LecturerSetBindingModel();
|
||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
||||||
var result = logic.GetList(new UserGetBindingModel { UserNameForSearch = userName });
|
var result = await logic.GetListAsync(new UserGetBindingModel { UserNameForSearch = userName });
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
if (result.List.Count > 1)
|
if (result.List.Count > 1)
|
||||||
@ -66,7 +67,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var newuser = logic.Create(new UserSetBindingModel
|
var newuser = await logic.CreateAsync(new UserSetBindingModel
|
||||||
{
|
{
|
||||||
Login = userName,
|
Login = userName,
|
||||||
Password = model.DateBirth.ToShortDateString(),
|
Password = model.DateBirth.ToShortDateString(),
|
||||||
@ -91,7 +92,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сброс пароля пользователя
|
/// Сброс пароля пользователя
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void PasswordReset()
|
private async Task PasswordResetAsync()
|
||||||
{
|
{
|
||||||
if (_element == null)
|
if (_element == null)
|
||||||
{
|
{
|
||||||
@ -101,14 +102,14 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var user = logic.GetElement(new UserGetBindingModel { Id = _element.UserId });
|
var user = await logic.GetElementAsync(new UserGetBindingModel { Id = _element.UserId });
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
user.Password = model.DateBirth.ToShortDateString();
|
user.Password = model.DateBirth.ToShortDateString();
|
||||||
user = logic.Update(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
user = await logic.UpdateAsync(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
|
@ -3,11 +3,6 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
{
|
{
|
||||||
partial class ControlOrderStudentRecordList
|
partial class ControlOrderStudentRecordList
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Обязательная переменная конструктора.
|
|
||||||
/// </summary>
|
|
||||||
private System.ComponentModel.IContainer components = null;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Освободить все используемые ресурсы.
|
/// Освободить все используемые ресурсы.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -13,6 +13,7 @@ using SecurityBusinessLogic.BusinessLogics;
|
|||||||
using SecurityBusinessLogic.ViewModels;
|
using SecurityBusinessLogic.ViewModels;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DepartmentWindowsDesktop.EntityControls
|
namespace DepartmentWindowsDesktop.EntityControls
|
||||||
{
|
{
|
||||||
@ -37,22 +38,22 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
{
|
{
|
||||||
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
|
||||||
{
|
{
|
||||||
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", (object sender, EventArgs e) => { AddUser(); }) },
|
{ "ToolStripMenuItemAddUser", ("Добавить пользователя", async (object sender, EventArgs e) => { await AddUserAsync(); }) },
|
||||||
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", (object sender, EventArgs e) => { PasswordReset(); }) }
|
{ "ToolStripMenuItemPasswordReset", ("Сброс пароля пользователя", async (object sender, EventArgs e) => { await PasswordResetAsync(); }) }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
/// Поиск пользователя под учетку, либо добавление нового, если не найдено
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void AddUser()
|
private async Task AddUserAsync()
|
||||||
{
|
{
|
||||||
var model = new StudentSetBindingModel();
|
var model = new StudentSetBindingModel();
|
||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
var userName = $"{model.LastName}{(model.FirstName.IsNotEmpty() ? $" {model.FirstName[0]}." : string.Empty)}{(model.Patronymic.IsNotEmpty() ? $"{model.Patronymic[0]}." : string.Empty)}";
|
||||||
var result = logic.GetList(new UserGetBindingModel { UserNameForSearch = userName });
|
var result = await logic.GetListAsync(new UserGetBindingModel { UserNameForSearch = userName });
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
if (result.List.Count > 1)
|
if (result.List.Count > 1)
|
||||||
@ -66,7 +67,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var newuser = logic.Create(new UserSetBindingModel
|
var newuser = await logic.CreateAsync(new UserSetBindingModel
|
||||||
{
|
{
|
||||||
Login = userName,
|
Login = userName,
|
||||||
Password = model.NumberOfBook,
|
Password = model.NumberOfBook,
|
||||||
@ -91,7 +92,7 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сброс пароля пользователя
|
/// Сброс пароля пользователя
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void PasswordReset()
|
private async Task PasswordResetAsync()
|
||||||
{
|
{
|
||||||
if (_element == null)
|
if (_element == null)
|
||||||
{
|
{
|
||||||
@ -101,14 +102,14 @@ namespace DepartmentWindowsDesktop.EntityControls
|
|||||||
if (FillModel(model))
|
if (FillModel(model))
|
||||||
{
|
{
|
||||||
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
var logic = DependencyManager.Instance.Resolve<UserBusinessLogic>();
|
||||||
var user = logic.GetElement(new UserGetBindingModel { Id = _element.UserId });
|
var user = await logic.GetElementAsync(new UserGetBindingModel { Id = _element.UserId });
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
user.Password = model.NumberOfBook;
|
user.Password = model.NumberOfBook;
|
||||||
user = logic.Update(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
user = await logic.UpdateAsync(Mapper.MapToClass<UserViewModel, UserSetBindingModel>(user, true));
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
DialogHelper.MessageException(logic.Errors, "Ошибка при получении пользователя");
|
||||||
|
@ -39,7 +39,7 @@ namespace SecurityWindowsDesktop.EntityControls
|
|||||||
public ControlViewEntityListConfiguration GetConfigControl() => new()
|
public ControlViewEntityListConfiguration GetConfigControl() => new()
|
||||||
{
|
{
|
||||||
PaginationOn = true,
|
PaginationOn = true,
|
||||||
PageNamesForPagination = _roleBusinessLogic.GetList(new RoleGetBindingModel())?.List?.Select(x =>
|
PageNamesForPagination = _roleBusinessLogic.GetListAsync(new RoleGetBindingModel()).Result?.List?.Select(x =>
|
||||||
new PageNamesForPaginationModel
|
new PageNamesForPaginationModel
|
||||||
{
|
{
|
||||||
Key = x.Id,
|
Key = x.Id,
|
||||||
|
Loading…
Reference in New Issue
Block a user