/// <summary> /// Добавляет сущность в БД. /// </summary> /// <param name="entity"></param> public void Insert(object entity) { var type = EntityMapper.EntityOf(entity); if (uc.CanCreate(type)) { try { InsertToDb(entity); } catch (Exception e) { var eventParams = new KeyValuePair <string, object>[] { new KeyValuePair <string, object>(Messenger.ErrorKey, e.Message) }; this.Send((int)EventId.ErrorOccured, eventParams); } } else { Trace.TraceWarning("{0} try to insert {1}", uc.CurrentUserName, entity); } }
/// <summary> /// Создает сущность. /// </summary> /// <param name="type"></param> /// <returns></returns> public object Create(Entity type) { var T = EntityMapper.TypeOf(type); var entity = Activator.CreateInstance(T); switch (type) { //case Entity.Settlement: // break; case Entity.Street: ((Street)entity).Settlement = Current.Settlement ?? null; ((Street)entity).StreetType = Current.StreetType ?? null; break; case Entity.House: ((House)entity).Street = Current.Street ?? null; break; case Entity.Flat: ((Flat)entity).House = Current.House ?? null; ((Flat)entity).FlatType = Current.FlatType ?? null; break; //case Entity.StreetType: // break; //case Entity.FlatType: // break; case Entity.Meter: ((Meter)entity).MeterType = Current.MeterType ?? null; ((Meter)entity).Registration = Current.Registration ?? null; break; //case Entity.MeterType: // break; case Entity.Reading: ((Reading)entity).Meter = Current.Meter ?? null; ((Reading)entity).Date = DateTime.Today; break; case Entity.Payment: ((Payment)entity).Registration = Current.Registration ?? null; ((Payment)entity).Service = Current.Service ?? null; ((Payment)entity).Date = DateTime.Today; ((Payment)entity).TargetMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); break; case Entity.Rate: ((Rate)entity).BeginDate = DateTime.Today; break; //case Entity.Benefit: // break; case Entity.Service: ((Service)entity).ServiceType = Current.ServiceType ?? null; break; //case Entity.ServiceType: // break; //case Entity.Unit: // break; case Entity.Registration: ((Registration)entity).PaymentStartDate = DateTime.Today; ((Registration)entity).Flat = Current.Flat ?? null; ((Registration)entity).Payer = Current.Payer ?? null; break; case Entity.Payer: ((Payer)entity).User = Current.User ?? null; ((Payer)entity).Sex = 1; // male if (!uc.IsAdminLoggedIn) { ((Payer)entity).User = uc.CurrentUser; } break; case Entity.User: ((User)entity).Salt = PasswordMaker.GenerateSalt(); ((User)entity).UserGroupID = (byte)uc.GetRegularUserGroup(); break; //case Entity.UserGroup: // break; } return(entity); }