private bool LocaleMissing(List<ProjectLocale> locales, Resource resource) { foreach (var locale in locales) if (!resource.Translations.Any(t => t.Locale == locale.LocaleCode)) return true; return false; }
public void DeleteTranslationsForResource(Resource resource) { context.ResourceTranslations.RemoveRange( from translation in context.ResourceTranslations where translation.ResourceID == resource.ID select translation ); }
public void CalcResourceTranslationStatusFromTranslations(List<ProjectLocale> locales, Resource resource) { if (LocaleMissing(locales, resource)) { resource.WorstTranslationStatus = TranslationStatus.NOT_TRANSLATED; return; } TranslationStatus worstStatus = (TranslationStatus)int.MaxValue; foreach (var translation in resource.Translations) if (translation.TranslationStatus < worstStatus) worstStatus = translation.TranslationStatus; if (worstStatus == (TranslationStatus)int.MaxValue) worstStatus = TranslationStatus.NOT_TRANSLATED; resource.WorstTranslationStatus = worstStatus; }
private ResourceTranslation CreateTranslation(ResourceAssembly existingAssembly, ResourceBundle existingBundle, Resource existingResource, ResourceTranslation template) { ResourceTranslation translation = new ResourceTranslation(); translation.BinaryValue = template.BinaryValue; translation.Locale = template.Locale; translation.ProjectID = existingAssembly.ProjectID; translation.Resource = existingResource; translation.ResourceAssemblyID = existingAssembly.ID; translation.ResourceBundleID = existingBundle.ID; translation.ResourceID = existingResource.ID; translation.StringValue = template.StringValue; translation.TranslationBy = template.TranslationBy; translation.TranslationDateTime = template.TranslationDateTime; translation.TranslationStatus = template.TranslationStatus; return translation; }
private void MarkResourceDeleted(Resource resourceToDelete) { if (resourceToDelete.ResourceSyncStatus != ResourceSyncStatus.REMOVED) { syncStatistics.RemovedResources++; resourceToDelete.ResourceSyncStatus = ResourceSyncStatus.REMOVED; resourceToDelete.LastChangeDateTime = DateTime.UtcNow; } }
private bool HasResourceChanges(Resource existingResource, Resource template) { return (!existingResource.BinaryValue.SequenceEqual(template.BinaryValue) || existingResource.DesignerSupportFlag != template.DesignerSupportFlag || existingResource.ResourceClass != template.ResourceClass || existingResource.ResourceType != template.ResourceType || existingResource.StringValue != template.StringValue); }
private void CreateNewResource(ResourceAssembly existingAssembly, ResourceBundle existingBundle, Resource template) { Resource resource = new Resource(); resource.BinaryValue = template.BinaryValue; resource.CreateDateTime = DateTime.UtcNow; resource.DesignerSupportFlag = template.DesignerSupportFlag; resource.Key = template.Key; resource.LastChangeDateTime = DateTime.UtcNow; resource.ProjectID = existingAssembly.ProjectID; resource.ResourceBundle = existingBundle; resource.ResourceClass = template.ResourceClass; resource.ResourceSyncStatus = ResourceSyncStatus.ADDED; resource.ResourceType = template.ResourceType; resource.StringValue = template.StringValue; resource.WorstTranslationStatus = resource.NeedsTranslation() ? TranslationStatus.NOT_TRANSLATED : TranslationStatus.NO_NEED_TO_TRANSLATE; existingBundle.Resources.Add(resource); resourceRepository.AddResource(resource); syncStatistics.AddedResources++; }
private void ApplyChangesToResource(Resource existingResource, Resource template) { existingResource.BinaryValue = template.BinaryValue; existingResource.DesignerSupportFlag = template.DesignerSupportFlag; existingResource.ResourceClass = template.ResourceClass; existingResource.ResourceType = template.ResourceType; existingResource.StringValue = template.StringValue; existingResource.WorstTranslationStatus = existingResource.NeedsTranslation() ? TranslationStatus.NOT_TRANSLATED : TranslationStatus.NO_NEED_TO_TRANSLATE; existingResource.ResourceSyncStatus = ResourceSyncStatus.UPDATED; existingResource.LastChangeDateTime = DateTime.UtcNow; syncStatistics.UpdatedResources++; }
private void CollectSingleResource(string resourceName, IDictionaryEnumerator dict, ResourceBundle bundle, ResourceReader reader, Object dictValue) { var resource = new Resource(); resource.Key = dict.Key.ToString(); resource.CreateDateTime = DateTime.UtcNow; resource.LastChangeDateTime = DateTime.UtcNow; resource.DesignerSupportFlag = resource.Key.StartsWith(">>"); String type; byte[] data; reader.GetResourceData(dict.Key.ToString(), out type, out data); resource.ResourceClass = type; resource.BinaryValue = data; bundle.Resources.Add(resource); resource.StringValue = dictValue != null ? dictValue.ToString() : null; if (dictValue is String) resource.ResourceType = ResourceType.STRING; else if (dictValue is Bitmap) resource.ResourceType = ResourceType.IMAGE; else resource.ResourceType = ResourceType.OTHER_BINARY; }
private void CollectResourcesFromArray(string resourceName, IDictionaryEnumerator dict, ResourceBundle bundle) { String[] strings = (String[])dict.Value; for (int i = 0; i < strings.Length; i++) { var resource = new Resource(); resource.Key = dict.Key.ToString() + "[" + i + "]"; resource.StringValue = strings[i]; resource.CreateDateTime = DateTime.UtcNow; resource.LastChangeDateTime = DateTime.UtcNow; resource.ResourceClass = "ResourceTypeCode.String"; resource.BinaryValue = Encoding.UTF8.GetBytes(strings[i]); resource.ResourceType = ResourceType.STRING_ARRAY; bundle.Resources.Add(resource); } }
public void AddResource(Resource resource) { context.Resources.Add(resource); }