private void NewExecute(object obj)
 {
     AttributeDescriptionModel = new AttributeDescriptionModel();
     SideBar.AddItem(AttributeDescriptionModel);
     SideBar.SelectedItem = AttributeDescriptionModel;
     SaveCommand.NotifyCanExecuteChanged();
 }
        public async Task <BlResult <AttributeDescriptionModel> > SaveAsync(AttributeDescriptionModel attributeDescriptionModel)
        {
            BlResult <AttributeDescriptionModel> blResult = new BlResult <AttributeDescriptionModel>();

            try
            {
                if (attributeDescriptionModel is null)
                {
                    throw new ArgumentNullException();
                }

                if (attributeDescriptionModel.Id == 0 && await _attribuetDescriptionRepository.ExistsEntityWithSuchAName(attributeDescriptionModel.Name))
                {
                    throw new Exception("Duplicated Attribute Name");
                }

                EnsureTransaction();

                var fetchedEntity = await _attribuetDescriptionRepository.GetByIdAsync(attributeDescriptionModel.Id);

                fetchedEntity = _mapper.Map(attributeDescriptionModel, fetchedEntity);

                if (attributeDescriptionModel.Id > 0)
                {
                    _attribuetDescriptionRepository.Edit(fetchedEntity);
                }
                else
                {
                    fetchedEntity = _attribuetDescriptionRepository.Add(fetchedEntity);
                }

                await SaveChangesAsync();

                blResult.Success(_mapper.Map <AttributeDescriptionModel>(fetchedEntity));
            }
            catch (ArgumentNullException)
            {
                blResult.Fail(ConstDictionary.CantSaveNullModel);
            }
            catch (Exception ex)
            {
                blResult.Fail(ex);
            }

            return(blResult);
        }
 private void SelectExecute(AttributeDescriptionModel obj)
 {
     AttributeDescriptionModel = obj;
 }