Beispiel #1
0
 private void StringLocalizer_LocalizeString(object sender, LocalizeStringEventArgs e)
 {
     if (WebContext.Current.ApplicationOption.IsMultiLanguageSupported && e.LanguageId != null)
     {
         LanguageDto currentLanguage = WebContext.Current.LanguageDic[e.LanguageId];
         if (currentLanguage.SysPhrases.ContainsKey(e.Key))
         {
             e.Value = currentLanguage.SysPhrases[e.Key];
         }
         else
         {
             // Save this key and defaultvalue in memory
             currentLanguage.SysPhrases.Add(e.Key, e.DefaultValue);
             // Save this key and defaultvalue in Database
             LanguagePhraseDto phrase = new LanguagePhraseDto();
             phrase.LanguageId  = currentLanguage.Id;
             phrase.PhraseKey   = e.Key;
             phrase.PhraseValue = e.DefaultValue;
             using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
             {
                 LanguagePhraseFacade facade = new LanguagePhraseFacade(uow);
                 facade.SaveLanguagePhrase(phrase);
             }
         }
     }
 }
Beispiel #2
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Language"/> class.
		/// </summary>
		/// <param name="languageDto">
		/// The data transfer object with language data.
		/// </param>
		/// <param name="displayNameProvider">
		/// A language name translation provider.
		/// </param>
		/// <param name="flat">Indicates that no children should be created.</param>
		internal Language(
			LanguageDto languageDto,
			LanguageDisplayNameProvider displayNameProvider,
			bool flat)
		{
			_displayNameProvider = displayNameProvider;

			Lcid = languageDto.Lcid;
			SystemLcid = languageDto.SystemLcid;
			IsNeutral = languageDto.IsNeutral;
			IsToolsCatalogSpecific = languageDto.IsToolsCatalogSpecific;
			IsSimplified = languageDto.IsSimplified;
			IsUncorrected = languageDto.IsUncorrected;
			Name = languageDto.Name;
			DefaultCodePage = languageDto.DefaultCodePage;
			Abbreviation = languageDto.Abbreviation;

			var children = new List<Language>();

			if (!flat)
			{
				foreach (LanguageDto child in languageDto.Children)
				{
					var childLanguage = new Language(child, displayNameProvider, false) { Parent = this };
					children.Add(childLanguage);
				}
			}

			Children = new LanguageCollection(children);
		}
Beispiel #3
0
 public static async Task <HttpResponseMessage> Update(LanguageDto data)
 {
     using (var client = ProjectNameApiClient.Get())
     {
         return(await client.PutAsync("Language", ProjectNameApiClient.ConvertToContent(data)));
     }
 }
Beispiel #4
0
 public static async Task <HttpResponseMessage> Delete(LanguageDto data)
 {
     using (var client = ProjectNameApiClient.Get())
     {
         return(await client.DeleteAsync($"Language/{data.Id}"));
     }
 }
Beispiel #5
0
        public GetLanguageResponse GetLanguage(GetLanguageRequest request)
        {
            var response      = new GetLanguageResponse();
            var isValidFormat = Regex.IsMatch(request.LanguageCode, "[a-z]{2}(-[a-z]{2})?", RegexOptions.IgnoreCase);

            if (!isValidFormat)
            {
                response.Message = "The language code is in the wrong format.";
                return(response);
            }

            try
            {
                var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
                var culture  = cultures.FirstOrDefault(x => x.Name.Equals(request.LanguageCode, StringComparison.InvariantCultureIgnoreCase));
                var language = new LanguageDto();

                if (culture != null)
                {
                    language.IsoCode    = culture.IetfLanguageTag;
                    language.Name       = culture.EnglishName;
                    language.NativeName = culture.NativeName;
                }

                response.Language = language;
                response.Success  = true;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Message = Resources.Common.InternalServerError;
            }

            return(response);
        }
Beispiel #6
0
        public async Task <ActionResult <LanguageDto> > Post([FromBody] LanguageDto language)
        {
            try
            {
                if (language == null)
                {
                    return(BadRequest("Language object is null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }

                var map = _mapper.Map <Language>(language);

                var res = await _languageBus.AddLanguage(map);

                var revMap = _mapper.Map <LanguageDto>(res);

                return(CreatedAtRoute("GetLanguageById", new { id = res.Id }, revMap));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Beispiel #7
0
        protected ILanguage ConvertFromDto(LanguageDto dto)
        {
            var factory = new LanguageFactory();
            var entity  = factory.BuildEntity(dto);

            return(entity);
        }
Beispiel #8
0
        public NavigationModel(IList <MainMenuDto> menuItems, Uri requestedUrl, LanguageDto currentLanguage)
        {
            // Build main navigation view model
            MainVav = new MenuViewModel();
            foreach (MainMenuDto item in menuItems)
            {
                MenuItemViewModel menuItem = new MenuItemViewModel(item, currentLanguage);
                MainVav.MenuItems.Add(menuItem);
                // Find out current item
                menuItem.IsCurrent = MenuItemHelper.IsCurrent(item.NavigateUrl, requestedUrl.AbsolutePath, currentLanguage);

                if (menuItem.IsCurrent)
                {
                    // current item found
                    // Build sub menu view model
                    SubNav = new MenuViewModel();
                    foreach (MainMenuDto subItem in item.SubMenus)
                    {
                        MenuItemViewModel subMenuItem = new MenuItemViewModel(subItem, currentLanguage);
                        SubNav.MenuItems.Add(subMenuItem);
                        // Find out current item
                        subMenuItem.IsCurrent = MenuItemHelper.IsCurrent(subMenuItem.NavigateUrl, requestedUrl.AbsolutePath, currentLanguage);
                    }
                }
            }
        }
        protected override LanguageDto FetchImpl(string languageText)
        {
            var currentUserId = Business.BusinessHelper.GetCurrentUserId();

            LanguageDto retLanguageDto = null;
            var         results        = from item in SeedData.Ton.Languages
                                         where item.Text == languageText &&
                                         item.UserId == currentUserId
                                         select item;

            if (results.Count() == 1)
            {
                retLanguageDto = results.First();
            }
            else
            {
                if (results.Count() == 0)
                {
                    throw new Exceptions.LanguageTextNotFoundException(languageText);
                }
                else
                {
                    throw new Exceptions.VeryBadException(
                              string.Format(DalResources.ErrorMsgVeryBadException,
                                            DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));
                }
            }

            return(retLanguageDto);
        }
        protected override LanguageDto InsertImpl(LanguageDto dto)
        {
            var currentUserId = Business.BusinessHelper.GetCurrentUserId();

            LanguageDto retResult = null;
            var         results   = from item in SeedData.Ton.Languages
                                    where item.Id == dto.Id &&
                                    item.UserId == currentUserId
                                    select item;

            if (results.Count() == 0)
            {
                dto.Id = Guid.NewGuid();
                SeedData.Ton.Languages.Add(dto);
                retResult = dto;
            }
            else
            {
                if (results.Count() == 1)
                {
                    throw new Exceptions.IdAlreadyExistsException(dto.Id);
                }
                else
                {
                    throw new Exceptions.VeryBadException(
                              string.Format(DalResources.ErrorMsgVeryBadException,
                                            DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));
                }
            }

            return(retResult);
        }
 public IActionResult Post([FromBody] LanguageDto dto)
 {
     try
     {
         addLanguage.Execute(dto);
         return(StatusCode(201));
     }
     catch (EntityAlreadyExistsException e)
     {
         return(StatusCode(409, new
         {
             Errors = new List <string> {
                 e.Message
             }
         }));
     }
     catch (Exception e)
     {
         return(StatusCode(500, new
         {
             Errors = new List <string> {
                 e.Message
             }
         }));
     }
 }
Beispiel #12
0
 public CreatePostCommand(Guid postId, string description, string code, LanguageDto codeLanguage)
 {
     PostId       = postId == default ? Guid.NewGuid() : postId;
     Description  = description;
     Code         = code;
     CodeLanguage = codeLanguage;
 }
        public ResponseDto <List <LanguageDto> > GetList()
        {
            ResponseBo <List <LanguageBo> > responseBo = languageBusiness.GetList();

            ResponseDto <List <LanguageDto> > responseDto = responseBo.ToResponseDto <List <LanguageDto>, List <LanguageBo> >();

            if (responseBo.IsSuccess && responseBo.Bo != null)
            {
                responseDto.Dto = new List <LanguageDto>();
                LanguageDto lang = null;
                foreach (LanguageBo item in responseBo.Bo)
                {
                    lang = new LanguageDto
                    {
                        Id          = item.Id,
                        Name        = item.Name,
                        CultureCode = item.CultureCode
                    };

                    responseDto.Dto.Add(lang);
                }
            }

            return(responseDto);
        }
        public ExcelSheet CreateSystemPhraseSheet(object languageId)
        {
            Dictionary <object, LanguageDto> languages = RetrieveLanguagesAndSysPhrases();
            LanguageDto defaultLanguage = languages[languageId];

            ExcelSheet sheet = new ExcelSheet();

            // Create table schema
            sheet.Columns.Add("PhraseKey");
            foreach (LanguageDto language in languages.Values)
            {
                sheet.Columns.Add(language.Name);
            }
            // Fill in row data
            foreach (string key in defaultLanguage.SysPhrases.Keys)
            {
                ExcelSheetRow row = sheet.NewRow();
                sheet.Rows.Add(row);
                row[0].Value = key;
                int index = 1;
                foreach (LanguageDto language in languages.Values)
                {
                    string value = string.Empty;
                    if (language.SysPhrases.ContainsKey(key))
                    {
                        value = language.SysPhrases[key];
                    }
                    row[index].Value = value;
                    index++;
                }
            }

            return(sheet);
        }
Beispiel #15
0
        public async Task <BaseEntity> SaveAndReturnEntityAsync(LanguageDto entityDto)
        {
            var entity = _mapper.Map <Language>(entityDto);
            var result = await _repository.SaveAndReturnEntityAsync(entity);

            return(result);
        }
        protected override bool IsValid(PropertyValidatorContext context)
        {
            //string email = context.PropertyValue as string;
            LanguageDto m = context.Instance as LanguageDto;

            return(_languageService.IsCodeUnique(m.Code, null));
        }
        protected override LanguageDto DeleteImpl(Guid id)
        {
            var currentUserId = Business.BusinessHelper.GetCurrentUserId();

            LanguageDto retResult = null;
            var         results   = from item in SeedData.Ton.Languages
                                    where item.Id == id &&
                                    item.UserId == currentUserId
                                    select item;

            if (results.Count() == 1)
            {
                var languageToRemove = results.First();
                SeedData.Ton.Languages.Remove(languageToRemove);
                retResult = languageToRemove;
            }
            else
            {
                if (results.Count() == 0)
                {
                    throw new Exceptions.IdNotFoundException(id);
                }
                else
                {
                    throw new Exceptions.VeryBadException(
                              string.Format(DalResources.ErrorMsgVeryBadException,
                                            DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));
                }
            }

            return(retResult);
        }
        public async Task <LanguageDto> Update(LanguageDto input)
        {
            var language = ObjectMapper.Map <ApplicationLanguage>(input);
            await _appLanguageManager.UpdateAsync(AbpSession.TenantId, language);

            return(ObjectMapper.Map <LanguageDto>(language));
        }
Beispiel #19
0
        public SimpleResponse <LanguageDto> Create(LanguageDto dto)
        {
            var response = new SimpleResponse <LanguageDto>();

            try
            {
                var model = SimpleMapper.Map <LanguageDto, LanguageViewModel>(dto);
                var resp  = iLanguageBusiness.Create(model);
                response = new SimpleResponse <LanguageDto>()
                {
                    ResponseCode    = resp.ResponseCode,
                    ResponseMessage = resp.ResponseMessage,
                    RCode           = resp.RCode
                };

                response.Data = SimpleMapper.Map <LanguageViewModel, LanguageDto>(resp.Data);
            }
            catch (Exception ex)
            {
                response.ResponseCode    = BusinessResponseValues.InternalError;
                response.ResponseMessage = "Okuma iþleminde hata oluþtu.";
                SimpleFileLogger.Instance.Error(ex);
            }

            return(response);
        }
Beispiel #20
0
    public static LanguageData ToData(LanguageDto dto, LearnLanguagesContext context)
    {
      //CREATE DATA OBJECT
      var languageData = context.LanguageDatas.CreateObject();

      //ASSIGN SIMPLE PROPERTIES
      languageData.Id = dto.Id;
      languageData.Text = dto.Text;
      languageData.UserDataId = dto.UserId;

      //POPULATE USERDATA
      var results = (from u in context.UserDatas
                     where u.Id == dto.UserId
                     select u);
      if (results.Count() == 1)
      {
        var userData = results.First();

        //MAKE SURE USERNAMES MATCH
        if (userData.Username != dto.Username)
          throw new ArgumentException("languageDto dto");
        languageData.UserData = results.First();
      }
      else if (results.Count() == 0)
        throw new Exceptions.UsernameAndUserIdDoNotMatchException(dto.Username, dto.UserId);
      else
        throw new Exceptions.VeryBadException(
          string.Format(DalResources.ErrorMsgVeryBadException,
          DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));

      //RETURN
      return languageData;
    }
Beispiel #21
0
 public ActionResult Create(LanguageDto dto)
 {
     if (!ModelState.IsValid)
     {
         TempData["error"] = "Check your input.";
         return(RedirectToAction(nameof(Create)));
     }
     try
     {
         executor.ExecuteCommand(addLanguage, dto);
         return(RedirectToAction(nameof(Index)));
     }
     catch (EntityNotAllowedException)
     {
         return(RedirectToAction("PageNotFound", "Redirections"));
     }
     catch (EntityAlreadyExistsException e)
     {
         TempData["error"] = e.Message;
     }
     catch (Exception e)
     {
         TempData["error"] = e.Message;
     }
     return(RedirectToAction(nameof(Index)));
 }
Beispiel #22
0
        public async Task <LanguageDto> PutLanguage(int id, LanguageDto model)
        {
            var url    = CRMApiUri + "/Language/" + id;
            var result = await PutRequestToApi(url, model);

            return(result);
        }
Beispiel #23
0
        public async Task <LanguageDto> PostLanguage(LanguageDto model)
        {
            var url    = CRMApiUri + "/Language";
            var result = await PostRequestToApi(url, model);

            return(result);
        }
Beispiel #24
0
        public async Task ShouldDeserializeLanguages()
        {
            var client = new RestClient("http://api.hackerrank.com");

            var request = new RestRequest("checker/languages.json", Method.GET);

            TaskCompletionSource <IRestResponse> taskCompletion = new TaskCompletionSource <IRestResponse>();

            client.ExecuteAsync(request, r => taskCompletion.SetResult(r));

            RestResponse response = (RestResponse)await taskCompletion.Task;

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new ArgumentException("Error getting languages");
            }

            dynamic data = JsonConvert.DeserializeObject(response.Content);

            var result = new LanguageDto();

            foreach (var item in data.languages.names)
            {
                result.Names.Add(item.Name, item.Value.ToString());
            }

            foreach (var item in data.languages.codes)
            {
                result.Codes.Add(item.Name, Int32.Parse(item.Value.ToString()));
            }
        }
Beispiel #25
0
        public int Add(LanguageDto dto)
        {
            var model = Mapper.Map <LanguageDto, Language>(dto);

            _unitOfWork.LanguageRepository.Add(model);
            _unitOfWork.SaveChanges();
            return(model.Id);
        }
 private static Language Map(LanguageDto languageDto)
 {
     return(new Language
     {
         Name = languageDto.Name,
         Code = languageDto.Iso6392Code,
     });
 }
Beispiel #27
0
        public bool Edit(LanguageDto dto)
        {
            var model = Mapper.Map <LanguageDto, Language>(dto);

            _unitOfWork.LanguageRepository.Update(model);
            _unitOfWork.SaveChanges();
            return(true);
        }
Beispiel #28
0
 public static Language FromDto(this LanguageDto data)
 {
     return(new Language
     {
         Id = data.Id,
         Active = data.Active,
         Name = data.Name
     });
 }
Beispiel #29
0
        public async Task <IActionResult> Put(int id, [FromBody] LanguageDto language)
        {
            if (id == 0 || language.Id == 0)
            {
                return(StatusCode(StatusCodes.Status400BadRequest, "Id needs to be greater than 0."));
            }

            return(await SaveAndReturnEntityAsync(async() => await _languageService.SaveAndReturnEntityAsync(language)));
        }
 public LanguageDto CopyTo(LanguageDto dto)
 {
     dto.Key          = this.Key;
     dto.Val          = this.Val;
     dto.LanguageCode = this.LanguageCode;
     dto.Iseditable   = this.Iseditable;
     BaseCopyTo <LanguageDto>(dto);
     return(dto);
 }
 public Language CopyFrom(LanguageDto dto)
 {
     this.Key          = dto.Key;
     this.Val          = dto.Val;
     this.LanguageCode = dto.LanguageCode;
     this.Iseditable   = dto.Iseditable;
     BaseCopyFrom <Language>(dto);
     return(this);
 }
Beispiel #32
0
        static private LanguageDto ConvertToDto(Language lan)
        {
            var result = new LanguageDto();

            result.Id   = lan.Id;
            result.Name = lan.Name;

            return(result);
        }
        //public Result<LanguageDto> New(object criteria)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var dto = new LanguageDto() { Id = Guid.NewGuid() };
        //    retResult = Result<LanguageDto>.Success(dto);
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Fetch(Guid id)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var results = from item in SeedData.Ton.Languages
        //                  where item.Id == id
        //                  select item;
        //    if (results.Count() == 1)
        //      retResult = Result<LanguageDto>.Success(results.First());
        //    else
        //    {
        //      if (results.Count() == 0)
        //        retResult = Result<LanguageDto>.FailureWithInfo(null,
        //          new Exceptions.FetchFailedException(DalResources.ErrorMsgIdNotFoundException));
        //      else
        //        retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException());
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Update(LanguageDto dto)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var results = from item in SeedData.Ton.Languages
        //                  where item.Id == dto.Id
        //                  select item;
        //    if (results.Count() == 1)
        //    {
        //      var languageToUpdate = results.First();
        //      SeedData.Ton.Languages.Remove(languageToUpdate);
        //      dto.Id = Guid.NewGuid();
        //      SeedData.Ton.Languages.Add(dto);
        //      //UPDATE PHRASES WHO REFERENCE THIS LANGUAGE
        //      UpdateReferences(languageToUpdate, dto);
        //      retResult = Result<LanguageDto>.Success(dto);
        //    }
        //    else
        //    {
        //      if (results.Count() == 0)
        //        retResult = Result<LanguageDto>.FailureWithInfo(null,
        //          new Exceptions.UpdateFailedException(DalResources.ErrorMsgIdNotFoundException));
        //      else
        //        retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException());
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Insert(LanguageDto dto)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var results = from item in SeedData.Ton.Languages
        //                  where item.Id == dto.Id
        //                  select item;
        //    if (results.Count() == 0)
        //    {
        //      dto.Id = Guid.NewGuid();
        //      SeedData.Ton.Languages.Add(dto);
        //      retResult = Result<LanguageDto>.Success(dto);
        //    }
        //    else
        //    {
        //      if (results.Count() == 1) //ID ALREADY EXISTS
        //        retResult = Result<LanguageDto>.FailureWithInfo(dto,
        //          new Exceptions.UpdateFailedException(DalResources.ErrorMsgIdNotFoundException));
        //      else                      //MULTIPLE IDS ALREADY EXIST??
        //        retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException());
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Delete(Guid id)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var results = from item in SeedData.Ton.Languages
        //                  where item.Id == id
        //                  select item;
        //    if (results.Count() == 1)
        //    {
        //      var languageToRemove = results.First();
        //      SeedData.Ton.Languages.Remove(languageToRemove);
        //      retResult = Result<LanguageDto>.Success(languageToRemove);
        //    }
        //    else
        //    {
        //      if (results.Count() == 0)
        //        retResult = Result<LanguageDto>.FailureWithInfo(null,
        //          new Exceptions.DeleteFailedException(DalResources.ErrorMsgIdNotFoundException));
        //      else
        //        retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.DeleteFailedException());
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public LearnLanguages.Result<ICollection<LanguageDto>> GetAll()
        //{
        //  Result<ICollection<LanguageDto>> retResult = Result<ICollection<LanguageDto>>.Undefined(null);
        //  try
        //  {
        //    var allDtos = new List<LanguageDto>(SeedData.Ton.Languages);
        //    retResult = Result<ICollection<LanguageDto>>.Success(allDtos);
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<ICollection<LanguageDto>>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        private void UpdateReferences(LanguageDto oldLanguageDto, LanguageDto newLanguageDto)
        {
            //UPDATE PHRASES
              var referencedPhrases = from p in SeedData.Ton.Phrases
                              where p.LanguageId == oldLanguageDto.Id
                              select p;

              foreach (var phrase in referencedPhrases)
              {
            phrase.LanguageId = newLanguageDto.Id;
              }
        }
 public Result<LanguageDto> New(object criteria)
 {
     Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
       try
       {
     LanguageDto newLanguage = new LanguageDto()
     {
       Id = Guid.NewGuid(),
       Text = DalResources.DefaultNewLanguageText
     };
     retResult = Result<LanguageDto>.Success(newLanguage);
       }
       catch (Exception ex)
       {
     retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
       }
       return retResult;
 }
        public Result<LanguageDto> Update(LanguageDto newDto)
        {
            Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
              try
              {
            using (var ctx = DbContextManager<LearnLanguagesContext>.GetManager(EFCodeFirstResources.DatabaseName))
            {
              var results = from languageDto in ctx.Context.Languages
                        where languageDto.Id == newDto.Id
                        select languageDto;

              if (results.Count() == 1)
              {
            var languageToUpdate = results.First();
            ctx.Context.Languages.Remove(languageToUpdate);
            newDto.Id = Guid.NewGuid();
            ctx.Context.Languages.Add(newDto);
            retResult = Result<LanguageDto>.Success(newDto);
              }
              else
              {
            if (results.Count() == 0)
              retResult = Result<LanguageDto>.FailureWithInfo(null,
                new Exceptions.UpdateFailedException(DalResources.ErrorMsgIdNotFound));
            else
              retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.UpdateFailedException());
              }
            }
              }
              catch (Exception ex)
              {
            retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
              }
              return retResult;
        }
        public Result<LanguageDto> Insert(LanguageDto dto)
        {
            Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
              try
              {
            using (var ctx = DbContextManager<LearnLanguagesContext>.GetManager(EFCodeFirstResources.DatabaseName))
            {
              var results = from languageDto in ctx.Context.Languages
                        where languageDto.Id == dto.Id
                        select languageDto;

              //SHOULD FIND ZERO LANGUAGEDTOS (NO DUPLICATE IDS, NO DUPLICATE DTOS)
              if (results.Count() == 0)
              {
            dto.Id = Guid.NewGuid();
            ctx.Context.Languages.Add(dto);
            retResult = Result<LanguageDto>.Success(dto);
              }
              else
              {
            if (results.Count() == 1) //ID ALREADY EXISTS
              retResult = Result<LanguageDto>.FailureWithInfo(dto,
                new Exceptions.InsertFailedException(DalResources.ErrorMsgIdNotFound));
            else                      //MULTIPLE IDS ALREADY EXIST?? SHOULD NOT BE POSSIBLE
              retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.InsertFailedException());
              }
            }
              }
              catch (Exception ex)
              {
            retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
              }
              return retResult;
        }
Beispiel #37
0
    protected override LanguageDto UpdateImpl(LanguageDto dto)
    {
      var currentUserId = Business.BusinessHelper.GetCurrentUserId();

        using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        {
          //CHECK TO SEE IF *NEW* LANGUAGE TEXT ALREADY EXISTS IN SOME OTHER LANGUAGE EDIT.  IF WE 
          //ARE REPLACING THE CURRENT TEXT WITH THE SAME TEXT, THAT IS FINE AS IT WILL JUST BE OVERWRITTEN.
          var newLanguageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
                                              where languageData.Text == dto.Text &&
                                                    languageData.Id != dto.Id &&
                                                    languageData.UserDataId == currentUserId
                                              select languageData).Count() > 0;

          if (newLanguageTextAlreadyExists)
            throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);

          //FIND CURRENT LANGUAGEDATA TO UPDATE
          var results = from languageData in ctx.ObjectContext.LanguageDatas
                        where languageData.Id == dto.Id &&
                              languageData.UserDataId == currentUserId
                        select languageData;

          if (results.Count() == 1)
          {
            var languageDataToUpdate = results.First();
            EfHelper.LoadDataFromDto(ref languageDataToUpdate, dto, ctx.ObjectContext);
            ctx.ObjectContext.SaveChanges();
            dto.Id = languageDataToUpdate.Id;
            return dto;
          }
          else
          {
            if (results.Count() == 0)
              throw new Exceptions.IdNotFoundException(dto.Id);
            else
              throw new Exceptions.VeryBadException(
                string.Format(DalResources.ErrorMsgVeryBadException,
                              DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));
          }
        }
      }
Beispiel #38
0
    protected override LanguageDto InsertImpl(LanguageDto dto)
    {
      var currentUserId = Business.BusinessHelper.GetCurrentUserId();

      using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
      {
        //CHECK TO SEE IF LANGUAGE TEXT ALREADY EXISTS.  NO DUPLICATE LANGUAGE TEXTS.
        var languageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
                                         where languageData.Text == dto.Text &&
                                               languageData.UserDataId == currentUserId
                                         select languageData).Count() > 0;

        if (languageTextAlreadyExists)
          throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);

        var results = from languageData in ctx.ObjectContext.LanguageDatas
                      where languageData.Id == dto.Id && 
                            languageData.UserDataId == currentUserId
                      select languageData;

        //SHOULD FIND ZERO LANGUAGEDTOS (NO DUPLICATE IDS, NO DUPLICATE DTOS)
        if (results.Count() == 0)
        {
          var data = EfHelper.ToData(dto, ctx.ObjectContext);
          ctx.ObjectContext.LanguageDatas.AddObject(data);
          ctx.ObjectContext.SaveChanges();
          dto.Id = data.Id;

          return dto;
        }
        else
        {
          if (results.Count() == 1) 
            //ID ALREADY EXISTS
            throw new Exceptions.IdAlreadyExistsException(dto.Id);
          else                      
            //MULTIPLE IDS ALREADY EXIST?? SHOULD NOT BE POSSIBLE
            throw new Exceptions.VeryBadException(
              string.Format(DalResources.ErrorMsgVeryBadException,
                            DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));
        }
      }
    }
Beispiel #39
0
    public static LanguageDto ToDto(LanguageData data)
    {
      var dto = new LanguageDto()
      {
        Id = data.Id,
        Text = data.Text,
        UserId = data.UserDataId,
        Username = data.UserData.Username
      };

      return dto;
    }
Beispiel #40
0
    //public Result<LanguageDto> New(object criteria)
    //{
    //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
    //  try
    //  {
    //    var identity = (UserIdentity)Csla.ApplicationContext.User.Identity;
    //    LanguageDto newLanguageDto = new LanguageDto()
    //    {
    //      Id = Guid.NewGuid(),
    //      Text = DalResources.DefaultNewLanguageText,
    //      UserId = identity.UserId,
    //      Username = identity.Name
    //    };
    //    retResult = Result<LanguageDto>.Success(newLanguageDto);
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
    //  }
    //  return retResult;
    //}
    //public Result<LanguageDto> Fetch(Guid id)
    //{
    //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
    //  try
    //  {
    //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
    //    {
    //      var results = from languageData in ctx.ObjectContext.LanguageDatas
    //                    where languageData.Id == id
    //                    select languageData;

    //      if (results.Count() == 1)
    //        retResult = Result<LanguageDto>.Success(EfHelper.ToDto(results.First()));
    //      else
    //      {
    //        if (results.Count() == 0)
    //          retResult = Result<LanguageDto>.FailureWithInfo(null,
    //            new Exceptions.FetchFailedException(DalResources.ErrorMsgIdNotFoundException));
    //        else
    //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException());
    //      }
    //    }
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException(ex));
    //  }
    //  return retResult;
    //}
    //public Result<LanguageDto> Update(LanguageDto dto)
    //{
    //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
    //  try
    //  {
    //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
    //    {
    //      //CHECK TO SEE IF *NEW* LANGUAGE TEXT ALREADY EXISTS.  NO DUPLICATE LANGUAGE TEXTS.
    //      //IF THE TEXT IS THE SAME AS THE CURRENT DTO, THEN WHAT ARE WE UPDATING?  THIS IS WHY I'M NOT CHECKING 
    //      //IF THE CURRENT TEXT == OLD TEXT
    //      var newLanguageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
    //                                          where languageData.Text == dto.Text
    //                                          select languageData).Count() > 0;

    //      if (newLanguageTextAlreadyExists)
    //        throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);

    //      //FIND CURRENT LANGUAGEDATA TO UPDATE
    //      var results = from languageData in ctx.ObjectContext.LanguageDatas
    //                    where languageData.Id == dto.Id
    //                    select languageData;

    //      if (results.Count() == 1)
    //      {
    //        var languageDataToUpdate = results.First();
    //        ctx.ObjectContext.LanguageDatas.DeleteObject(languageDataToUpdate);
    //        dto.Id = Guid.NewGuid();
    //        ctx.ObjectContext.LanguageDatas.AddObject(EfHelper.ToData(dto, ctx.ObjectContext));
    //        ctx.ObjectContext.SaveChanges();
    //        retResult = Result<LanguageDto>.Success(dto);
    //      }
    //      else
    //      {
    //        if (results.Count() == 0)
    //          retResult = Result<LanguageDto>.FailureWithInfo(null,
    //            new Exceptions.UpdateFailedException(DalResources.ErrorMsgIdNotFoundException));
    //        else
    //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.UpdateFailedException());
    //      }
    //    }
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.UpdateFailedException(ex));
    //  }
    //  return retResult;
    //}
    //public Result<LanguageDto> Insert(LanguageDto dto)
    //{
    //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
    //  try
    //  {
    //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
    //    {
    //      //CHECK TO SEE IF LANGUAGE TEXT ALREADY EXISTS.  NO DUPLICATE LANGUAGE TEXTS.
    //      var languageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
    //                                       where languageData.Text == dto.Text
    //                                       select languageData).Count() > 0;

    //      if (languageTextAlreadyExists)
    //        throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);

    //      var resultsSameIdFound = from languageData in ctx.ObjectContext.LanguageDatas
    //                               where languageData.Id == dto.Id
    //                               select languageData;
            
    //      //SHOULD FIND ZERO LANGUAGEDTOS (NO DUPLICATE IDS, NO DUPLICATE DTOS)
    //      if (resultsSameIdFound.Count() == 0)
    //      {
    //        var data = EfHelper.ToData(dto);
    //        ctx.ObjectContext.LanguageDatas.AddObject(data);
    //        ctx.ObjectContext.SaveChanges();
    //        dto.Id = data.Id;
    //        retResult = Result<LanguageDto>.Success(dto);
    //      }
    //      else
    //      {
    //        if (resultsSameIdFound.Count() == 1) //ID ALREADY EXISTS
    //          retResult = Result<LanguageDto>.FailureWithInfo(dto,
    //            new Exceptions.InsertFailedException(DalResources.ErrorMsgIdNotFoundException));
    //        else                      //MULTIPLE IDS ALREADY EXIST?? SHOULD NOT BE POSSIBLE
    //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.InsertFailedException());
    //      }
    //    }
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.InsertFailedException(ex));
    //  }
    //  return retResult;
    //}
    //public Result<LanguageDto> Delete(Guid id)
    //{
    //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
    //  try
    //  {
    //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
    //    {
    //      var results = from languageData in ctx.ObjectContext.LanguageDatas
    //                    where languageData.Id == id
    //                    select languageData;

    //      if (results.Count() == 1)
    //      {
    //        var languageDataToRemove = results.First();

    //        #region Cascade Delete to Phrases and Translations
    //        ////DELETE ALL PHRASES ASSOCIATED WITH LANGUAGE
    //        //THIS CASCADE IS TRICKY, BECAUSE WE NEED TO DELETE A TRANSLATION ONLY IF THAT TRANSLATION WILL CONTAIN
    //        //LESS THAN TWO PHRASES *AFTER* THIS DELETE.

    //        var phrasesToDelete = languageDataToRemove.PhraseDatas.ToList();
    //        foreach (var phraseDataToDelete in phrasesToDelete)
    //        {
    //          //WHEN WE DELETE A PHRASE, IF IT IS PART OF A TRANSLATION, AND THAT TRANSLATION
    //          //AFTER DELETE WOULD HAVE LESS THAN TWO PHRASES, WE NEED TO CASCADE THE DELETE TO THE TRANSLATION
    //          var translationsToDelete = new List<TranslationData>();
    //          foreach (var translation in phraseDataToDelete.TranslationDatas)
    //          {
    //            //IF WE ONLY HAVE TWO OR LESS PHRASES *NOW* (WE HAVE NOT DELETED PHRASE YET), THEN AFTER DELETE 
    //            //WE *WILL* HAVE ONLY ONE OR ZERO, SO MARK THIS TRANSLATION FOR DELETION.
    //            if (translation.PhraseDatas.Count <= 2)
    //              translationsToDelete.Add(translation);
    //          }

    //          //EXECUTE DELETE OF THOSE TRANSLATIONS
    //          foreach (var translation in translationsToDelete)
    //          {
    //            ctx.ObjectContext.TranslationDatas.DeleteObject(translation);
    //          }

    //          //DELETE THE PHRASE ITSELF
    //          ctx.ObjectContext.PhraseDatas.DeleteObject(phraseDataToDelete);
    //        }
    //        #endregion

    //        //DELETE LANGUAGE ITSELF
    //        ctx.ObjectContext.LanguageDatas.DeleteObject((languageDataToRemove));
            
    //        //SAVE CHANGES
    //        ctx.ObjectContext.SaveChanges();

    //        retResult = Result<LanguageDto>.Success(EfHelper.ToDto(languageDataToRemove));
    //        //todo: when deleting a language, it would be good to have successwithinfo about how many phrases/translations were deleted.
    //      }
    //      else
    //      {
    //        if (results.Count() == 0)
    //          retResult = Result<LanguageDto>.FailureWithInfo(null,
    //            new Exceptions.DeleteFailedException(DalResources.ErrorMsgIdNotFoundException));
    //        else
    //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.DeleteFailedException());
    //      }
    //    }
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.DeleteFailedException(ex));
    //  }
    //  return retResult;
    //}

    //public Result<ICollection<LanguageDto>> GetAll()
    //{
    //  Result<ICollection<LanguageDto>> retResult = Result<ICollection<LanguageDto>>.Undefined(null);
    //  try
    //  {
    //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
    //    {
    //      var allDtos = (

    //                     from languageData in ctx.ObjectContext.LanguageDatas
    //                     select new LanguageDto()
    //                     {
    //                       Id = languageData.Id,
    //                       Text = languageData.Text
    //                     }

    //                    ).ToList();
    //      //var allDtos = new List<LanguageDto>(ctx.ObjectContext.LanguageDatas);
    //      retResult = Result<ICollection<LanguageDto>>.Success(allDtos);
    //    }
    //  }
    //  catch (Exception ex)
    //  {
    //    retResult = Result<ICollection<LanguageDto>>.FailureWithInfo(null, new Exceptions.GetAllFailedException(ex));
    //  }
    //  return retResult;
    //}

    protected override LanguageDto NewImpl(object criteria)
    {
      var currentUserId = Business.BusinessHelper.GetCurrentUserId();
      var currentUsername = Business.BusinessHelper.GetCurrentUsername();
      
      LanguageDto newLanguageDto = new LanguageDto()
      {
        Id = Guid.NewGuid(),
        Text = DalResources.DefaultNewLanguageText,
        UserId = currentUserId,
        Username = currentUsername
      };
     
      return newLanguageDto;
    }
Beispiel #41
0
    /// <summary>
    /// Loads the information from the dto into the data object. Except...
    /// Does NOT load dto.Id.
    /// </summary>
    /// <param name="data"></param>
    /// <param name="dto"></param>
    public static void LoadDataFromDto(ref LanguageData data,
                                       LanguageDto dto,
                                       LearnLanguagesContext context)
    {
      //USER INFO
      data.UserDataId = dto.UserId;
      data.UserData = EfHelper.GetUserData(dto.UserId, context);

      //MAKE SURE USERDATA USERNAME MATCHES DTO.USERNAME
      if (data.UserData.Username != dto.Username)
        throw new Exceptions.UsernameAndUserIdDoNotMatchException(dto.Username, dto.UserId);

      //TEXT
      data.Text = dto.Text;
    }
Beispiel #42
0
		void ISettingsView.AddLanguage(LanguageDto language)
		{
			LanguageComboBox.Items.Add(language);
		}
        //public Result<LanguageDto> New(object criteria)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    var identity = (CustomIdentity)Csla.ApplicationContext.User.Identity;
        //    LanguageDto newLanguageDto = new LanguageDto()
        //    {
        //      Id = Guid.NewGuid(),
        //      Text = DalResources.DefaultNewLanguageText,
        //      UserId = identity.UserId,
        //      Username = identity.Name
        //    };
        //    retResult = Result<LanguageDto>.Success(newLanguageDto);
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, ex);
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Fetch(Guid id)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        //    {
        //      var results = from languageData in ctx.ObjectContext.LanguageDatas
        //                    where languageData.Id == id
        //                    select languageData;
        //      if (results.Count() == 1)
        //        retResult = Result<LanguageDto>.Success(EfHelper.ToDto(results.First()));
        //      else
        //      {
        //        if (results.Count() == 0)
        //          retResult = Result<LanguageDto>.FailureWithInfo(null,
        //            new Exceptions.FetchFailedException(DalResources.ErrorMsgIdNotFoundException));
        //        else
        //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException());
        //      }
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.FetchFailedException(ex));
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Update(LanguageDto dto)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        //    {
        //      //CHECK TO SEE IF *NEW* LANGUAGE TEXT ALREADY EXISTS.  NO DUPLICATE LANGUAGE TEXTS.
        //      //IF THE TEXT IS THE SAME AS THE CURRENT DTO, THEN WHAT ARE WE UPDATING?  THIS IS WHY I'M NOT CHECKING
        //      //IF THE CURRENT TEXT == OLD TEXT
        //      var newLanguageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
        //                                          where languageData.Text == dto.Text
        //                                          select languageData).Count() > 0;
        //      if (newLanguageTextAlreadyExists)
        //        throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);
        //      //FIND CURRENT LANGUAGEDATA TO UPDATE
        //      var results = from languageData in ctx.ObjectContext.LanguageDatas
        //                    where languageData.Id == dto.Id
        //                    select languageData;
        //      if (results.Count() == 1)
        //      {
        //        var languageDataToUpdate = results.First();
        //        ctx.ObjectContext.LanguageDatas.DeleteObject(languageDataToUpdate);
        //        dto.Id = Guid.NewGuid();
        //        ctx.ObjectContext.LanguageDatas.AddObject(EfHelper.ToData(dto, ctx.ObjectContext));
        //        ctx.ObjectContext.SaveChanges();
        //        retResult = Result<LanguageDto>.Success(dto);
        //      }
        //      else
        //      {
        //        if (results.Count() == 0)
        //          retResult = Result<LanguageDto>.FailureWithInfo(null,
        //            new Exceptions.UpdateFailedException(DalResources.ErrorMsgIdNotFoundException));
        //        else
        //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.UpdateFailedException());
        //      }
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.UpdateFailedException(ex));
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Insert(LanguageDto dto)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        //    {
        //      //CHECK TO SEE IF LANGUAGE TEXT ALREADY EXISTS.  NO DUPLICATE LANGUAGE TEXTS.
        //      var languageTextAlreadyExists = (from languageData in ctx.ObjectContext.LanguageDatas
        //                                       where languageData.Text == dto.Text
        //                                       select languageData).Count() > 0;
        //      if (languageTextAlreadyExists)
        //        throw new Exceptions.LanguageTextAlreadyExistsException(dto.Text);
        //      var resultsSameIdFound = from languageData in ctx.ObjectContext.LanguageDatas
        //                               where languageData.Id == dto.Id
        //                               select languageData;
        //      //SHOULD FIND ZERO LANGUAGEDTOS (NO DUPLICATE IDS, NO DUPLICATE DTOS)
        //      if (resultsSameIdFound.Count() == 0)
        //      {
        //        var data = EfHelper.ToData(dto);
        //        ctx.ObjectContext.LanguageDatas.AddObject(data);
        //        ctx.ObjectContext.SaveChanges();
        //        dto.Id = data.Id;
        //        retResult = Result<LanguageDto>.Success(dto);
        //      }
        //      else
        //      {
        //        if (resultsSameIdFound.Count() == 1) //ID ALREADY EXISTS
        //          retResult = Result<LanguageDto>.FailureWithInfo(dto,
        //            new Exceptions.InsertFailedException(DalResources.ErrorMsgIdNotFoundException));
        //        else                      //MULTIPLE IDS ALREADY EXIST?? SHOULD NOT BE POSSIBLE
        //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.InsertFailedException());
        //      }
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.InsertFailedException(ex));
        //  }
        //  return retResult;
        //}
        //public Result<LanguageDto> Delete(Guid id)
        //{
        //  Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
        //  try
        //  {
        //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        //    {
        //      var results = from languageData in ctx.ObjectContext.LanguageDatas
        //                    where languageData.Id == id
        //                    select languageData;
        //      if (results.Count() == 1)
        //      {
        //        var languageDataToRemove = results.First();
        //        #region Cascade Delete to Phrases and Translations
        //        ////DELETE ALL PHRASES ASSOCIATED WITH LANGUAGE
        //        //THIS CASCADE IS TRICKY, BECAUSE WE NEED TO DELETE A TRANSLATION ONLY IF THAT TRANSLATION WILL CONTAIN
        //        //LESS THAN TWO PHRASES *AFTER* THIS DELETE.
        //        var phrasesToDelete = languageDataToRemove.PhraseDatas.ToList();
        //        foreach (var phraseDataToDelete in phrasesToDelete)
        //        {
        //          //WHEN WE DELETE A PHRASE, IF IT IS PART OF A TRANSLATION, AND THAT TRANSLATION
        //          //AFTER DELETE WOULD HAVE LESS THAN TWO PHRASES, WE NEED TO CASCADE THE DELETE TO THE TRANSLATION
        //          var translationsToDelete = new List<TranslationData>();
        //          foreach (var translation in phraseDataToDelete.TranslationDatas)
        //          {
        //            //IF WE ONLY HAVE TWO OR LESS PHRASES *NOW* (WE HAVE NOT DELETED PHRASE YET), THEN AFTER DELETE
        //            //WE *WILL* HAVE ONLY ONE OR ZERO, SO MARK THIS TRANSLATION FOR DELETION.
        //            if (translation.PhraseDatas.Count <= 2)
        //              translationsToDelete.Add(translation);
        //          }
        //          //EXECUTE DELETE OF THOSE TRANSLATIONS
        //          foreach (var translation in translationsToDelete)
        //          {
        //            ctx.ObjectContext.TranslationDatas.DeleteObject(translation);
        //          }
        //          //DELETE THE PHRASE ITSELF
        //          ctx.ObjectContext.PhraseDatas.DeleteObject(phraseDataToDelete);
        //        }
        //        #endregion
        //        //DELETE LANGUAGE ITSELF
        //        ctx.ObjectContext.LanguageDatas.DeleteObject((languageDataToRemove));
        //        //SAVE CHANGES
        //        ctx.ObjectContext.SaveChanges();
        //        retResult = Result<LanguageDto>.Success(EfHelper.ToDto(languageDataToRemove));
        //        //todo: when deleting a language, it would be good to have successwithinfo about how many phrases/translations were deleted.
        //      }
        //      else
        //      {
        //        if (results.Count() == 0)
        //          retResult = Result<LanguageDto>.FailureWithInfo(null,
        //            new Exceptions.DeleteFailedException(DalResources.ErrorMsgIdNotFoundException));
        //        else
        //          retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.DeleteFailedException());
        //      }
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<LanguageDto>.FailureWithInfo(null, new Exceptions.DeleteFailedException(ex));
        //  }
        //  return retResult;
        //}
        //public Result<ICollection<LanguageDto>> GetAll()
        //{
        //  Result<ICollection<LanguageDto>> retResult = Result<ICollection<LanguageDto>>.Undefined(null);
        //  try
        //  {
        //    using (var ctx = LearnLanguagesContextManager.Instance.GetManager())
        //    {
        //      var allDtos = (
        //                     from languageData in ctx.ObjectContext.LanguageDatas
        //                     select new LanguageDto()
        //                     {
        //                       Id = languageData.Id,
        //                       Text = languageData.Text
        //                     }
        //                    ).ToList();
        //      //var allDtos = new List<LanguageDto>(ctx.ObjectContext.LanguageDatas);
        //      retResult = Result<ICollection<LanguageDto>>.Success(allDtos);
        //    }
        //  }
        //  catch (Exception ex)
        //  {
        //    retResult = Result<ICollection<LanguageDto>>.FailureWithInfo(null, new Exceptions.GetAllFailedException(ex));
        //  }
        //  return retResult;
        //}
        protected override LanguageDto NewImpl(object criteria)
        {
            var identity = (CustomIdentity)Csla.ApplicationContext.User.Identity;
              LanguageDto newLanguageDto = new LanguageDto()
              {
            Id = Guid.NewGuid(),
            Text = DalResources.DefaultNewLanguageText,
            UserId = identity.UserId,
            Username = identity.Name
              };

              return newLanguageDto;
        }
 protected override LanguageDto NewImpl(object criteria)
 {
     var dto = new LanguageDto() { Id = Guid.NewGuid() };
       return dto;
 }
        public Result<LanguageDto> Update(LanguageDto dtoToUpdate)
        {
            Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
              try
              {
            Common.CommonHelper.CheckAuthentication();

            var updatedDto = UpdateImpl(dtoToUpdate);
            retResult = Result<LanguageDto>.Success(updatedDto);
              }
              catch (Exception ex)
              {
            var wrappedEx = new Exceptions.UpdateFailedException(ex);
            retResult = Result<LanguageDto>.FailureWithInfo(null, wrappedEx);
              }
              return retResult;
        }
 protected abstract LanguageDto InsertImpl(LanguageDto dto);
 protected abstract LanguageDto UpdateImpl(LanguageDto dto);
        protected override LanguageDto InsertImpl(LanguageDto dto)
        {
            LanguageDto retResult = null;
              var results = from item in SeedData.Ton.Languages
                    where item.Id == dto.Id
                    select item;

              if (results.Count() == 0)
              {
            dto.Id = Guid.NewGuid();
            SeedData.Ton.Languages.Add(dto);
            retResult = dto;
              }
              else
              {
            if (results.Count() == 0)
              throw new Exceptions.IdNotFoundException(dto.Id);
            else
              throw new Exceptions.VeryBadException(
            string.Format(DalResources.ErrorMsgVeryBadException,
                          DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));

              }

              return retResult;
        }
Beispiel #49
0
 private LanguageDto ReadLanguageDto(IDataReader reader, ref bool alreadyRead)
 {
     LanguageDto retval = new LanguageDto();
     retval.LanguageName = GetString(reader, 0);
     retval.LanguageFK = GetString(reader, 1);
     
     alreadyRead = reader.Read();
     return retval;
 }
        protected override LanguageDto UpdateImpl(LanguageDto dto)
        {
            LanguageDto retLanguageDto = null;
              var results = from item in SeedData.Ton.Languages
                    where item.Id == dto.Id
                    select item;

              if (results.Count() == 1)
              {
            var languageToUpdate = results.First();
            SeedData.Ton.Languages.Remove(languageToUpdate);
            dto.Id = Guid.NewGuid();
            SeedData.Ton.Languages.Add(dto);
            //UPDATE PHRASES WHO REFERENCE THIS LANGUAGE
            UpdateReferences(languageToUpdate, dto);

            retLanguageDto = dto;
              }
              else
              {
            if (results.Count() == 0)
              throw new Exceptions.IdNotFoundException(dto.Id);
            else
              throw new Exceptions.VeryBadException(
            string.Format(DalResources.ErrorMsgVeryBadException,
                          DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));

              }

              return retLanguageDto;
        }
Beispiel #51
0
 public bool Equals(LanguageDto other)
 {
     return other.LanguageName == LanguageName;
 }
Beispiel #52
0
    protected override LanguageDto UpdateImpl(LanguageDto dto)
    {
      var currentUserId = Business.BusinessHelper.GetCurrentUserId();

      LanguageDto retLanguageDto = null;
      var results = from item in SeedData.Ton.Languages
                    where item.Id == dto.Id &&
                          item.UserId == currentUserId
                    select item;

      if (results.Count() == 1)
      {
        var languageToUpdate = results.First();
        SeedData.Ton.Languages.Remove(languageToUpdate);
        dto.Id = Guid.NewGuid();
        SeedData.Ton.Languages.Add(dto);
        //UPDATE PHRASES WHO REFERENCE THIS LANGUAGE
        UpdateReferences(languageToUpdate, dto);

        retLanguageDto = dto;
      }
      else
      {
        if (results.Count() == 0)
        {
          //ITEM NOT FOUND TO UPDATE, SO INSERT IT
          return InsertImpl(dto);
          //throw new Exceptions.IdNotFoundException(dto.Id);
        }
        else
          throw new Exceptions.VeryBadException(
            string.Format(DalResources.ErrorMsgVeryBadException,
                          DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));

      }

      return retLanguageDto;
    }
Beispiel #53
0
    protected override LanguageDto InsertImpl(LanguageDto dto)
    {
      var currentUserId = Business.BusinessHelper.GetCurrentUserId();

      LanguageDto retResult = null;
      var results = from item in SeedData.Ton.Languages
                    where item.Id == dto.Id &&
                          item.UserId == currentUserId
                    select item;

      if (results.Count() == 0)
      {
        dto.Id = Guid.NewGuid();
        SeedData.Ton.Languages.Add(dto);
        retResult = dto;
      }
      else
      {
        if (results.Count() == 1)
          throw new Exceptions.IdAlreadyExistsException(dto.Id);
        else
          throw new Exceptions.VeryBadException(
            string.Format(DalResources.ErrorMsgVeryBadException,
                          DalResources.ErrorMsgVeryBadExceptionDetail_ResultCountNotOneOrZero));

      }
      
      return retResult;
    }
        public Result<LanguageDto> Insert(LanguageDto dtoToInsert)
        {
            Result<LanguageDto> retResult = Result<LanguageDto>.Undefined(null);
              try
              {
            Common.CommonHelper.CheckAuthentication();

            var insertedDto = InsertImpl(dtoToInsert);
            retResult = Result<LanguageDto>.Success(insertedDto);
              }
              catch (Exception ex)
              {
            var wrappedEx = new Exceptions.InsertFailedException(ex);
            retResult = Result<LanguageDto>.FailureWithInfo(null, wrappedEx);
              }
              return retResult;
        }
Beispiel #55
0
 protected override LanguageDto NewImpl(object criteria)
 {
   var currentUserId = Business.BusinessHelper.GetCurrentUserId();
   var currentUsername = Business.BusinessHelper.GetCurrentUsername();
   var dto = new LanguageDto() 
   {
     Id = Guid.NewGuid(), 
     UserId = currentUserId,
     Username = currentUsername
   };
   return dto;
 }